|
|
[php]
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#define TESTSTR "Hello dup2\n"
#define SIZEOFTESTSTR 11
int main(void)
{
int fd3;
int s_fd;
int n_fd;
fd3 = open("testdup2.dat", 0666);
if (fd3 < 0)
{
printf("open error\n");
exit(-1);
}
s_fd = dup ( STDOUT_FILENO );
if ( s_fd < 0 )
printf("err in dup \n");
n_fd = dup2 (fd3, STDOUT_FILENO);
if(n_fd < 0)
{
printf("err in dup2\n");
}
printf(TESTSTR); 《--------------
if (dup2(s_fd,n_fd) < 0)
printf("err in dup2\n");
printf("ok\n");
return 1;
}
[/php]
为什么用printf不能达到预期效果-将teststr输入到文件testdup2.dat当中,而用write是就可一,不明白怎么会事。 |
|