【发布时间】:2010-09-07 08:29:16
【问题描述】:
执行位于我的 FUSE 文件系统上的 bash 脚本时,会使用以下标志进行 open() 调用:
debug,cpfsfuse.c(62),cpfs_fuse_open: path "/make.sh", flags 0100040
标志 (0100040) 应与 open() 的参数 2 中传递的标志相对应。未知标志源自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
大多数终端标志被发现。谁能解释一下如何追踪这个标志的起源和意义,或者在哪里可以找到它的定义?
【问题讨论】: