我想知道我们是否真的可以创建一个解决方法/别名来关闭文件描述符。含义,close(fd)应该在与fd(文件描述符)相关的流内部做些事情。我们可以获得/提供关闭功能的功能,而不用实际上使用文件描述符上的关闭功能。有没有办法解决使用管道函数创建文件描述符的问题
我想在这种情况下,我不想关闭写管道结束(使用pipe()函数创建),但另一端不应该知道这一点。管道的另一端应该感觉到另一端实际上是关闭的。
我想知道我们是否真的可以创建一个解决方法/别名来关闭文件描述符。含义,close(fd)应该在与fd(文件描述符)相关的流内部做些事情。我们可以获得/提供关闭功能的功能,而不用实际上使用文件描述符上的关闭功能。有没有办法解决使用管道函数创建文件描述符的问题
我想在这种情况下,我不想关闭写管道结束(使用pipe()函数创建),但另一端不应该知道这一点。管道的另一端应该感觉到另一端实际上是关闭的。
也许您在寻找shutdown
函数。但是,这用于全双工连接,以指示数据以一个方向结束。
也许单向管道可以从写入结束时用shutdown
关闭写入?从来没有听说过这样做。
这将是最接近以类似于关闭的方式操作连接状态,而不实际处理文件描述符的情况。 (如果可以在这些物体上进行该操作)。
你继续做,并成为天竺鼠。 ;)
'shutdown'在套接字上运行,而不是管道。 – 2012-04-05 04:10:21
@kaz:我们可以在管道上使用关闭功能吗?正如我们的一位朋友所说,它不能用于管道 – chaitu 2012-04-05 04:55:04
“如果创建具有相同名称 外部可见的功能作为系统功能,您函数会被_instead_of_的 原有系统的功能。”
#include<stdio.h>
int open(const char *p,int f) {
printf("we are in our open()\n");
}
int close() {
printf("we are in our close()\n");
}
main() {
open("test",1);
close();
return 0;
}
你能解释为什么你需要这样做吗? – tangrs 2012-04-05 04:04:01