ChinaUnix.net
相关文章推荐:

FD_CLOEXEC

在unix环境高级编程第十二章第五个程序里看到这样一句: val |= fd_cloexec 其中fd_cloexec 已经在fcntl.h里被定义为1 #define fd_cloexec 1 那在这里这样写还有什么用呢? 不管前面val取到的值是什么,这样运算下来,肯定是1 那为什么不直接写 val = 1呢? 谢谢

by welcome008 - C/C++ - 2007-12-27 23:52:48 阅读(1935) 回复(9)

相关讨论

本人在做Linux到windows平台移植,windows下没有fcntl函数,请问有没有类似的WIN API能够对文件描述符进行设置? 移植的地方需要设置fd的属性为fd_cloexec,windows下该如何处理?

by UCfree - C/C++ - 2009-06-11 13:31:46 阅读(2045) 回复(2)

通过fcntl设置fd_cloexec标志有什么用? 在下面的程序中设了这个标志还是没什么用,在子进程中还是可以访问fd. #include; int main(void) { int val,fd,pid; char buffer[20]; fd=open("wo.txt",O_RDONLY); printf("%d\n",fd); val=fcntl(fd,F_GETfd); val|=fd_cloexec; fcntl(fd,F_SETfd,val); printf("%d\n",val); pid=fork(); if(pi...

by xiangshu - C/C++ - 2010-06-08 11:57:29 阅读(12399) 回复(14)

书上说“当子进程exec一个新的程序时,调用进程中打开的文件描述符仍然保持打开,但设置了执行即关fd_cloexec的文件描述字除外。如果该标志设置,则描述字在exec时将被关闭。否则该描述字在exec后仍保持打开。” 这句话是不是这样理解的:调用进程是指调用exec的那个子进程,如果在子进程中的某个文件描述字该标志设为了1,则子进程exec后该文件描述字就被关闭?否则就仍为打开???可是exec后子进程不就退出了吗???还有什么文...

by shuzhiquan - C/C++ - 2007-06-28 11:19:54 阅读(6886) 回复(14)

我想要操作软盘,用 dd if=qlc2200 of=/dev/fd0 设备忙,为什么!!

by havelq - Solaris - 2003-04-17 21:42:44 阅读(1150) 回复(19)

# Redirecting only stderr to a pipe. exec 3>&1 # Save current "value" of stdout. ls -l 2>&1 >&3 3>&- | grep bad 3>&- # Close fd 3 for 'grep' (but not 'ls'). exec 3>&- # Now close it for the remainder of the script. 关于 10个fd 这里 和exec之间的操作 谁能发个 文章 一般 只看...

by nuclearxin - Shell - 2007-11-19 13:46:39 阅读(1294) 回复(2)

比较新的系统都提供名为/dev/fd的目录,其目录项是名为0、1、2等的文件。打开文件/dev/fd/n等效于复制描述符n(假定描述符n是打开的)。 在函数中调用: fd=open("/dev/fd/0",mode); 大多数系统忽略所指定的mode,而另外一些则要求mode是所涉及的文件(在这里则是标准输入)原先打开时所使用的mode的子集。因为上面的打开等效于: fd=dup(0); 描述符0和fd共享同一文件表项(见图3-3)。例如,若描述符0被只读打开,那么我们也只对...

by cdblsc - AIX文档中心 - 2007-04-25 15:05:36 阅读(1386) 回复(0)

请问 exec 0<&- 关闭了的fd0 怎么开启 如果是保存再恢复 怎么清空里面的缓存 谢谢

by honbj - Shell - 2006-05-17 08:46:33 阅读(1014) 回复(3)

我不想用文件来操作,只想通过一个fd来操作! 主要目的就是,用自己的成功信息代替cmd的信息。 然后输出cmd的一堆的错误信息! cmd > /dev/null 2>&6 if [ $? -eq 0 ]; then echo "successfully!" else 6>&1 fi 但是这样出错。

by ppxp - Shell - 2005-08-02 18:29:43 阅读(858) 回复(6)

lr-x------ 1 zc zc 64 Feb 3 00:13 0 ->; /dev/null l-wx------ 1 zc zc 64 Feb 3 00:13 1 ->; /home/zc/.xsession-errors lrwx------ 1 zc zc 64 Feb 3 00:13 10 ->; socket:[172144] l-wx------ 1 zc zc 64 Feb 3 00:13 2 ->; /home/zc/.xsession-errors lrwx------ 1 zc zc 64 Feb 3 00:13 3 ->; socket:[323...

by boy_zc - Linux论坛 - 2005-02-04 18:26:18 阅读(1377) 回复(6)