2012-04-10 8 views
0

私の友人は以下の割り当てを持っています。誰でも "C"でこれを行う方法を指導できます。すべてのプロセスリストをUIDのファイルに保存します

すべてのプロセスリストをファイルに保存し、すべてのプロセスをUIDで並べ替えるプログラムを作成します。例えば

./a.out processidlist.txt 

それはprocessidlist.txtする情報を保存する必要があります。

このprocessidlist.txtでは、プロセスをUIDでソートする必要があります。

は、彼はあなたが迷惑なヘッダー

UID  PID PPID C STIME TTY   TIME CMD 
をしたくない場合は、これらのライン上の
#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; 
} 
+0

なぜこのタグはC++ですか? –

+0

[_he/she_は何を試していますか?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) –

+0

彼は以下のコマンドで試しましたが、twork ps -A- o UID> outputfile – kobe

答えて

2

何かが

system("ps -Af | sort -k1"); 

A indicates all processes 
f generates full listing 
k denotes sort by column 
1 denotes first column which is UID of the processes 

を仕事とする必要があり

ps –A –o UID > outputfile 

おかげ

以下試してみましたその後、あなたのプロセスのリストと一緒に

、あなたが質問のコンテキストを提供する必要がps出力

system("ps -Af | sed "1 d" | sort -k1"); 
+0

pavan、あなたはCプログラムでこのlinを直接使うことができることを意味します – kobe

+0

Linuxで実行しているなら、はい! 'system'は、ubuntu OSを使用しているシェル –

+0

で実行するのと同じようにコマンドを実行します。 – kobe

1

の最初の行を削除するためにsedを使用しています。つまり、あなたに教えようとしている宿題は何ですか?

すべてのプロセスを確認するために学習している特定のAPIはありますか? (そしてあなたがそれを使用することが期待されると分かるでしょう)。

そうでない場合、Pavanのsystem()コールのようなものが動作する可能性があります。 (しかし、なぜ1行のシェルスクリプトで解決すればCプログラムを書くように依頼されたのですか?)

また、質問のコメントの "ps" 「彼はpsコマンドラインが適切だと思いますか?

+0

おかげで確実にprintf関数を削除します、そして、私たちは、システムのコマンドを使用することになっていないと思う、 – kobe

+0

これは、UNIX/Linuxのコース – kobe

+0

の一部であることをやって、任意の他の簡単な方法があります再び、先生から何が示唆されましたか?/procを直接ファイルシステムに置く? libproc? – John3136

関連する問題