2012-03-20 13 views
0

所有しているプロセス(ユーザー)を見つけてファイルに書き込むために、EXECファミリを使用する必要があります。言語C - プロセスの所有者を取得

CODE:

sprintf(buffer, "%d", getpid()); 

if ((pid = fork()) == -1) 
     exit(EXIT_FAILURE); 
     else if (pid == 0) 
     { 
      dup2(fd,STDOUT_FILENO); 
      dup2(fd,STDERR_FILENO); 

      // function that Write in the file 
      fdprintf(fd, "\n%s %s%d secondes %s\n", adornment, toShow, sec, adornment); 

      if (execlp("ps", "u", buffer, NULL) == -1) 
      show_err("Exelp Error\n"); 
     }                                                   
     else 
     { 
      wait(NULL); 
      fdprintf(fd, "%s %s%d secondes %s\n", adornment, toShow, sec, adornment); 
      close(fd); 
     } 

任意のヘルプは歓迎です! おかげ

+0

どのようなOSですか?私はあなたの最初のexeclp出力からUNIXの味を推測しています。 – Chris

答えて

0

最後に、私はユーザーEXECVE ... それは私のためにうまく動作します。

0

getppid()

のget親のpid、何をやっている

pid_t parent_pid = getppid(); 
5

getuid(2)thedailywtf同等です詳細はmanページを確認してください。ログイン名を取得する場合は、getpwuid(3)を使用できます。

+0

実際には、私はexecを使用しています...だからいいえ:) –

+0

@JohnSmith誰が言う。 – cnicutar

+0

私の先生;)! –

関連する問題