语言C - 获取流程所有者

时间:2012-03-20 14:08:26

标签: c process exec fork

我必须使用EXEC系列来查找所拥有的进程(用户)并将其写入文件中。

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);
        }

任何帮助表示赞赏! 感谢

3 个答案:

答案 0 :(得分:5)

您正在做的是thedailywtf相当于getuid(2)。如果您想获取登录名,可以使用getpwuid(3)

答案 1 :(得分:0)

getppid()

获取父pid,请查看手册页以获取更多信息

pid_t parent_pid = getppid();

答案 2 :(得分:0)

最后,我用户EXECVE ... 它对我来说很好。

相关问题