2012-04-05 29 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

相關問題