我想知道我們是否真的可以創建一個解決方法/別名來關閉文件描述符。含義,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