2012-04-27 35 views
0

我是linux編程的新手。我寫了一個非常簡單的程序:linux編程:文件描述符的值總是3

#include stdio.h 
#include fcntl.h 
#include sys/ioctl.h 
#include mtd/mtd-user.h 
#include errno.h 

int main(void) 
{ 
    int fd; 

    fd = open("test.target", O_RDWR); 
    printf("var fd = %d\n", fd); 
    close(fd); 
    perror("perror output:"); 

    return 0; 
} 

test.target僅創建了使用觸摸命令。程序的輸出是:

var fd = 3 
perror output:: Success 

我試圖打開其他文件,文件描述符總是3.I記住它的值應該是一個較大的number.If這個程序有一些錯誤?

+0

你說你解決了它,但是解決方案是什麼?你應該接受解決你的問題的答案。 – 2012-04-27 20:31:40

+0

對不起。我是新來的,剛纔我接受了答案。 – user1361391 2012-04-28 08:55:28

回答

8

這似乎很正常。進程以預打開的文件描述符開始:標準輸入爲0,標準輸出爲1,標準錯誤爲2。您打開的任何新文件都應以3開頭。如果關閉文件,該文件描述符編號將被重新用於您打開的任何新文件。