当前位置: 技术问答>linux和unix
dup函数重定向时遇到问题
来源: 互联网 发布时间:2017-04-04
本文导语: #include #include #include int main() { int fd2; fd2 = open("lsttic.out",O_RDONLY|O_RDONLY|O_CREAT,777); if(dup2(fd2,1)==-1) { printf("dup error!!!"); e...
#include
#include
#include
int main()
{
int fd2;
fd2 = open("lsttic.out",O_RDONLY|O_RDONLY|O_CREAT,777);
if(dup2(fd2,1)==-1)
{
printf("dup error!!!");
exit(0);
}
printf("hello world!!!n");
close(fd2);
printf("hello world!!!n");
return 0;
}
为什么两个hello world 都既没有输出在终端上,也没有输出到文件里面?
#include
#include
int main()
{
int fd2;
fd2 = open("lsttic.out",O_RDONLY|O_RDONLY|O_CREAT,777);
if(dup2(fd2,1)==-1)
{
printf("dup error!!!");
exit(0);
}
printf("hello world!!!n");
close(fd2);
printf("hello world!!!n");
return 0;
}
为什么两个hello world 都既没有输出在终端上,也没有输出到文件里面?
|
错误两点:
777对应的权限为1411,这个权限明显错误了. 应该用八进制表示0777,或者用S_IWUSR等这样的或
open时的mod错误,,你想要输出的,当然得用写的O_WRONLY或者O_RDWR...
把原来的lsttic.out删除...然后试下面的.
777对应的权限为1411,这个权限明显错误了. 应该用八进制表示0777,或者用S_IWUSR等这样的或
open时的mod错误,,你想要输出的,当然得用写的O_WRONLY或者O_RDWR...
把原来的lsttic.out删除...然后试下面的.
#include
#include
#include
#include
int main()
{
int fd2;
fd2 = open("lsttic.out",O_WRONLY | O_CREAT, 0777);
if(fd2