2012-04-27 90 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开头。如果关闭文件,该文件描述符编号将被重新用于您打开的任何新文件。