执行位于我的 FUSE 文件系统上的 bash 脚本时,open()
会使用以下标志进行调用:
调试,cpfsfuse.c(62),cpfs_fuse_open:路径“/make.sh”,标志 0100040
flags ( 0100040
) 应该对应于在参数 2 中传递的那些open()
。未知标志来自一个execve()
调用:
matt@stanley:~/cpfs/dir$ strace -f ./make.sh
execve("./make.sh", ["./make.sh"], [/* 37 vars */]
我的代码可以识别#define O_LARGEFILE 00100000
,但另一个标志似乎只有在execve()
被调用时才会出现。
Grepping for the flag 没有找到它:
matt@stanley:~/cpfs$ grep -RP '\b00*40\b' /usr/include/ | less
大多数终端标志被发现。任何人都可以阐明如何追踪这面旗帜的起源和意义,或者在哪里可以找到它的定义?