我的朋友有一个以下任务,任何人都可以在“C”中指导如何做到这一点,只要指导就足够了。
编写一个程序,将所有进程列表存储到一个文件中,并使用 UID 对所有进程进行排序。
例如:
./a.out processidlist.txt
它必须将信息保存到 processidlist.txt。
在这个 processidlist.txt 中,它必须使用 UID 对进程进行排序。
他尝试了以下
ps –A –o UID > outputfile
谢谢
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char *argv[] )
{
FILE *fp1, *fp2;
FILE *fp;
int status;
char path[1035];
fp1 = fopen( argv[1], "w" );
if ( ! fp1 )
{
printf("Error opening file %s\n", argv[1]);
}
/* Open the command for reading. */
fp = popen("ps -Af | sort -k1", "r");
if (fp == NULL) {
printf("Failed to run command\n" );
exit;
}
/* Read the output a line at a time - output it. */
while (fgets(path, sizeof(path)-1, fp) != NULL) {
printf("%s", path);
fputs( path, fp1 );
}
/* close */
pclose(fp);
fclose(fp1);
return 0;
}