求解释stdin,stdout,stderr
它们都是指向FILE结构的指针,FILE结构里有文件描述符,默认stdin文件描述符是0,stdout是1,stderr是2。
本以为它们指向不同的文件,后来发现不是的
lrwxrwxrwx 1 root root 15 12-01 14:09 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 12-01 14:09 /dev/stdout -> /proc/self/fd/1
lrwxrwxrwx 1 root root 15 12-01 14:09 /dev/stderr -> /proc/self/fd/2
lrwx------ 1 root root 64 12-11 09:55 /proc/self/fd/0 -> /dev/pts/0
lrwx------ 1 root root 64 12-11 09:56 /proc/self/fd/1 -> /dev/pts/0
lrwx------ 1 root root 64 12-11 09:56 /proc/self/fd/2 -> /dev/pts/0
crw--w---- 1 root tty 136, 0 12-11 09:56 /dev/pts/0
它们都指向同一个字符设备文件,这样的话我们fprintf(stdin,"hello world");不就也可以屏幕输出了吗?
所以我试了试,不可以,不知道为什么?