【发布时间】:2014-09-15 12:44:13
【问题描述】:
具体来说,我想查看 fork() 创建的子进程的 /proc/PID/io 文件。我只能想尝试在父进程中访问它,但总是无法访问。
pid_t pid = fork();
if (pid < 0) // failed
{
return;
}
else if (pid == 0) // child process
{
char* args[] = { "cat", "test.txt" };
execv(args[0], args);
}
else // parent process
{
wait(NULL);
}
在调用 wait 之前可以访问该文件,但它当然不包含任何非零值,因为孩子尚未完成。调用等待后该文件不可访问,因为子进程已终止。那么,我该怎么做呢?
诚然,这是针对一个项目的,但除了基本的分叉之外,我们还没有涵盖任何内容。任何帮助表示赞赏。
【问题讨论】:
-
当进程终止并收集子进程时,/proc 中的相应条目消失。你需要什么信息?另外,请指定您的操作系统,因为 proc 文件系统既不是 POSIX 也不是 System V 的一部分。
-
对我来说这听起来像是一个XY Problem 实例。请尝试说明您需要该访问权限的原因。
-
对不起,我ssh到的其实是我学校提供的Linux机器。根据项目描述,我需要 /proc/PID/io 文件中的“bytes_read”和“bytes_written”的值。