Lua lfs.attributes: Provide a more consistent error return
In the remaining error case, return a 3-tuple consistent with the other error return case. Document how to invoke lfs.attributes() and detect/decode error return in example comments. Reviewed by: kevans Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D14451
This commit is contained in:
parent
b81e88d296
commit
f2b32f473e
@ -80,13 +80,20 @@ __FBSDID("$FreeBSD$");
|
|||||||
* (etc.)
|
* (etc.)
|
||||||
*
|
*
|
||||||
* The other available API is lfs.attributes(), which functions somewhat like
|
* The other available API is lfs.attributes(), which functions somewhat like
|
||||||
* stat(2) and returns a table of values:
|
* stat(2) and returns a table of values. Example code:
|
||||||
*
|
*
|
||||||
* for k, v in pairs(lfs.attributes("/boot")) do
|
* attrs, errormsg, errorcode = lfs.attributes("/boot")
|
||||||
* print(k .. ":\t" .. v)
|
* if attrs == nil then
|
||||||
|
* print(errormsg)
|
||||||
|
* return errorcode
|
||||||
* end
|
* end
|
||||||
*
|
*
|
||||||
* Prints:
|
* for k, v in pairs(attrs) do
|
||||||
|
* print(k .. ":\t" .. v)
|
||||||
|
* end
|
||||||
|
* return 0
|
||||||
|
*
|
||||||
|
* Prints (on success):
|
||||||
* gid: 0
|
* gid: 0
|
||||||
* change: 140737488342640
|
* change: 140737488342640
|
||||||
* mode: directory
|
* mode: directory
|
||||||
@ -277,7 +284,9 @@ lua_attributes(lua_State *L)
|
|||||||
path = luaL_checkstring(L, 1);
|
path = luaL_checkstring(L, 1);
|
||||||
if (path == NULL) {
|
if (path == NULL) {
|
||||||
lua_pushnil(L);
|
lua_pushnil(L);
|
||||||
return 1;
|
lua_pushfstring(L, "cannot convert first argument to string");
|
||||||
|
lua_pushinteger(L, EINVAL);
|
||||||
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = stat(path, &sb);
|
rc = stat(path, &sb);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user