有没有办法解决使用管道函数创建的文件描述符的关闭

时间:2012-04-05 04:02:01

标签: c linux pipe

我想知道我们是否可以为关闭文件描述符创建一个变通方法/别名。含义,close(fd)应该在与fd(文件描述符)相关联的流内部执行某些操作。我们是否可以实现/提供close函数的功能而无需在文件描述符上实际使用close函数。

我希望在我不想关闭管道末端(使用pipe()函数创建)的情况下,但另一端不应该意识到这一点。管道的另一端应该感觉到另一端实际上是关闭的。

2 个答案:

答案 0 :(得分:0)

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

也许可以关闭单向管道,以便从写端使用shutdown进行写入?从未听说过这件事。

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

你继续成为豚鼠。 ;)

答案 1 :(得分: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

相关问题