2012-04-05 26 views
0

我想知道我们是否真的可以创建一个解决方法/别名来关闭文件描述符。含义,close(fd)应该在与fd(文件描述符)相关的流内部做些事情。我们可以获得/提供关闭功能的功能,而不用实际上使用文件描述符上的关闭功能。有没有办法解决使用管道函数创建文件描述符的问题

我想在这种情况下,我不想关闭写管道结束(使用pipe()函数创建),但另一端不应该知道这一点。管道的另一端应该感觉到另一端实际上是关闭的。

+3

你能解释为什么你需要这样做吗? – tangrs 2012-04-05 04:04:01

回答

0

也许您在寻找shutdown函数。但是,这用于全双工连接,以指示数据以一个方向结束。

也许单向管道可以从写入结束时用shutdown关闭写入?从来没有听说过这样做。

这将是最接近以类似于关闭的方式操作连接状态,而不实际处理文件描述符的情况。 (如果可以在这些物体上进行该操作)。

你继续做,并成为天竺鼠。 ;)

+2

'shutdown'在套接字上运行,而不是管道。 – 2012-04-05 04:10:21

+0

@kaz:我们可以在管道上使用关闭功能吗?正如我们的一位朋友所说,它不能用于管道 – chaitu 2012-04-05 04:55:04

0

“如果创建具有相同名称 外部可见的功能作为系统功能,函数会被_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; 
} 

Picked from here

相关问题