exec函数

来源:互联网 发布:网络引论 编辑:程序博客网 时间:2024/05/29 18:40

已经转载了一篇exec函数的文章,这里补充一些。

exec函数的第二个参数好像只能用"./xx"当前目录下的可执行文件,至于为什么我也不是很懂,以后遇见了再说吧。

FD_CLOEXEC,标志默认是关闭的。可以再open里打开,或者fcntl。如果文件已经存在,再次create+trunc,属性

是不变的,O_TRUNC(配合只写或者读写才会更新文件) 若文件存在, 将其长度缩为0, 属性不变。

close删除/proc/pid/fd下的文件描述符,ulimit -n 我的电脑是1024,这个文件夹下最多能放0-1024共1025个描述符。

FD_CLOEXEC执行时关闭,这个经测试并没有删除文件夹下的fd,但是打开标志后,文件不可读。(别的地方说

是引用计数减一)。那就引用计数减一吧,不过fd的个数还是占用的。当我在父进程打开1024个描述符,fork子进程

后exec的进程,只能打开一个exec描述符。不管有没有设置CLOSE_ON_EXEC标志。还有一点,exec执行的时候也

占用了一个fd,执行的程序运行后查看文件夹下,fd的个数并没有增加。这个也不太好理解。

综上,感觉这个标志只是让子进程不能使用继承的描述符,但跟close的作用还是不一样。不过close的话,

要关闭所有的继承的描述符的话又不好统计。

就这样吗,以后再看吧


原创粉丝点击