将当前系统中的进程信息打印到文件中
将当前系统中的进程信息打印到文件中
思路:
1、open()打开文件,没有就新建;
2、dup2()将标准输出STDOUT_FILENO重定向到文件ps.out中;
3、execlp()系统调用ps aux命令程序载入进程。
1 #include<unistd.h>
2 #include<fcntl.h>
3 #include<stdio.h>
4 #include<stdlib.h>
5
6 int main(void)
7 {
8 int fd;
9 fd = open("ps.out", O_WRONLY|O_CREAT|O_TRUNC, 0644);
10 if(fd<0){
11 perro("open ps.out error");
12 exit(1);
13 }
14
15 dup2(fd, STDOUT_FILENO);
16
17 execlp("ps", "ps", "aux", NULL);
18
19 close(fd); //事实上execlp()不返回,故后面的语句都不会执行,文件还是依靠系统隐式回收
20 return 0;
21 }
Ubuntu16.04