【发布时间】:2015-02-03 16:29:11
【问题描述】:
有没有办法以简单的方式重定向/查看给定正在运行的进程的标准输入/标准输出/标准错误(通过 PID)?
我尝试了以下方法(假设 'pid' 包含正在运行的用户进程):
int foo(const void* data, struct file* file, unsigned fd)
{
printf("Fd = %x\n", fd);
return 0;
}
struct task_struct* task = pid_task(find_vpid(pid), PIDTYPE_PID);
struct files_struct* fs = task->files;
iterate_fd(fs, 0, foo, NULL);
我收到 3 次对 foo 的调用(这个过程可能有 3 个打开的文件,这是有道理的)但我无法真正读取它们(从文件指针)。
打印出来:
0
1
2
是否有可能以相当简单的方式实现我的要求?
谢谢
【问题讨论】:
标签: linux linux-kernel