- 论坛徽章:
- 0
|
发现把标准输出重定向到/dev/null以后,执行printf会设置errno。- #include <stdio.h>
- #include <errno.h>
- int main (void)
- {
- fprintf (stderr, "ERRNO STDERR %d\n", errno);
- printf ("ERRNO %d\n", errno);
- fprintf (stderr, "ERRNO STDERR %d\n", errno);
- return 0;
- }
复制代码 lyre@linux-zyqe:~/misc/c_test> ./a.out
ERRNO STDERR 0
ERRNO 0
ERRNO STDERR 0
lyre@linux-zyqe:~/misc/c_test> ./a.out 1>/dev/null
ERRNO STDERR 0
ERRNO STDERR 25
lyre@linux-zyqe:~/misc/c_test> ./a.out 2>/dev/null
ERRNO 0
lyre@linux-zyqe:~/misc/c_test> ./a.out 1>abc
ERRNO STDERR 0
ERRNO STDERR 0
lyre@linux-zyqe:~/misc/c_test> cat abc
ERRNO 0
是因为/dev/null不能写入吗? |
|