7
8 #include<stdio.h>
9 #include <sys/types.h>
10 #include <sys/stat.h>
11 #include <fcntl.h>
12 #include <stdlib.h>
13 #include <unistd.h>
14
15
16
17 int main(int argc,char *argv[])
18 {
19 int fd;
20 char ch;
21 setbuf(stdout, NULL);
22 if(argc<2)
23 {
24 printf("one file need!\n");
25 exit(0);
26 }
27 fd=open(argv[1],O_CREAT|O_RDWR,0777);
28 if(fd==-1)
29 {
30 perror("create error:");
31 }
32 dup2(fd,STDOUT_FILENO);
33 close(fd);
34 printf("testh is test");
35 }
dup2(fd,STDOUT_FILENO); 这一行 代表我们将STDOUT_FILENO 也就是文件描述符1 复制为我们新建的文件的文件描述符
这种情况下我们PRINTF就不能输入信息到屏幕上了,而是写入到文件
8 #include<stdio.h>
9 #include <sys/types.h>
10 #include <sys/stat.h>
11 #include <fcntl.h>
12 #include <stdlib.h>
13 #include <unistd.h>
14
15
16
17 int main(int argc,char *argv[])
18 {
19 int fd;
20 char ch;
21 setbuf(stdout, NULL);
22 if(argc<2)
23 {
24 printf("one file need!\n");
25 exit(0);
26 }
27 fd=open(argv[1],O_CREAT|O_RDWR,0777);
28 if(fd==-1)
29 {
30 perror("create error:");
31 }
32 dup2(fd,STDOUT_FILENO);
33 close(fd);
34 printf("testh is test");
35 }
dup2(fd,STDOUT_FILENO); 这一行 代表我们将STDOUT_FILENO 也就是文件描述符1 复制为我们新建的文件的文件描述符
这种情况下我们PRINTF就不能输入信息到屏幕上了,而是写入到文件