将当前系统中的进程信息打印到文件中

将当前系统中的进程信息打印到文件中

思路:

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

posted @ 2020-06-28 21:07  程序虫  阅读(425)  评论(0编辑  收藏  举报