0

ファイル記述子を閉じるための回避策/エイリアスを実際に作成できるかどうかを知りたいです。つまり、close(fd)は、fd(ファイル記述子)に関連付けられたストリームの内部で何かを実行する必要があります。ファイル記述子で実際にclose関数を使用せずに、close関数の機能を実現/提供できますか?

パイプの書き込み端(pipe()関数を使用して作成)を閉じたくないシナリオでこれが必要ですが、もう一方の端はこれを認識してはなりません。パイプのもう一方の端は、反対側の端が実際に閉じているように感じるはずです。

4

2 に答える 2

0

「システム関数と同じ名前で外部から見える関数を作成すると、その関数は元のシステム関数の_代わりに_と呼ばれます。」

#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;
}

ここから選んだ

于 2012-04-05T05:02:57.807 に答える
0

shutdown機能を探しているのかもしれません。ただし、これは全二重接続で使用され、データが一方向で終了していることを示します。

たぶん、書き込み側から書き込みのために単方向パイプをシャットダウンできますshutdownか?これが行われたことは聞いたことがありません。

これは、実際にファイル記述子を破棄することなく、閉じるのと似た方法で接続の状態を操作することに最も近い方法です。(これらのオブジェクトでその操作が可能な場合。)

あなたは先に進み、モルモットになります。;)

于 2012-04-05T04:08:40.143 に答える