导航:首页 > 操作系统 > linux获取父进程

linux获取父进程

发布时间:2023-04-03 15:25:45

linux 下,已知子进程的情况下,打印(显示)父进程

在Linux下,可以有两种比较方便的方法:
1. # pstree
通过系统的进程树来查看某个进程的父进程;
2. # ps -ef |grep <进程名>
在显示的输出中,第三列就是该进程的父进程PID,然后可以再使用ps命令来查看父进程的名称
# ps -ef |grep <父进程PID>
这应该就是你想要的结果吧?

❷ linux终端下使用pipe实现父子进程交互

看这个问题好久都没人回答。。。

挺简单的,fork一子一父进程,父进程循环读入文件内容,并写进道管道里面,子进程循环从管道接收然后打印出来。

撸码辛苦,望采纳。

#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<string.h>
#include<fcntl.h>
intmain()
{
pid_tresult;
intn,num;
intpipe_fd[2];
intfd;
charbuf1[100],buf2[100];
memset(buf1,0,sizeof(buf1));
memset(buf2,0,sizeof(buf2));
fd=open("/home/w.c",O_RDONLY);
if(pipe(pipe_fd)<0)
{
printf("error! ");
return-1;
}
result=fork();
if(result<0)
{
printf("error! ");
exit(0);
}
elseif(result==0)
{
close(pipe_fd[1]);
while((n=read(pipe_fd[0],buf1,99))>0)
{
buf1[n]='';
printf("%s",buf1);
memset(buf1,0,sizeof(buf1));
}
}
else
{
close(pipe_fd[0]);
while((num=read(fd,buf2,99))>0){
write(pipe_fd[1],buf2,strlen(buf2));
}
waitpid(result,NULL,0);
}
close(pipe_fd[1]);
close(pipe_fd[0]);
close(fd);

return0;
}

❸ 如何查看linux后台运行程序的父进程

ps -ef | grep PID
看输出结果,第三列就是父进程PPID

❹ linux 查看哪些进程的父进程进程号是1 这个命令怎么写

init进程的pid是1
init进程是其他所有进程的父进程。
列出父进程号是1的进程,就是列出除了init外的所有进程。

❺ 使用linux编写C语言程序,如何才能得到进程信息和父进程信息

我觉得这个问题你应该从另外一个方向去考虑,既然b不需要a的资源,那么就不要在fork之前打开这些资源。
你如,你原来的代码是
fd
=
open(...);
...
...
fork();
...
...
你现在就应该改成
fork();
if
(parent)
{
......
fd
=
open();
.....
}
else
{
....
}
如果你是要在a进程打开资源,运行了一些东西,得到了足够的信息才需要调用其他啊程序来做下一步内容,如果按照上面的方法就无法实现了话,你面对的实际是进程间同步和通信的问题。
解决方法也很简单,随便通过一种通信机制(signal,pipe,等等),等a进程获得足够信息后,再通知b进程执行。比如
a:
fork();
/*
below
code
are
running
in
parent,
a
*/
...
...
fd
=
open();
...
...
notify(b);
/*
use
kill,
send,
etc.
to
notify
child
task
b)
....
b:
wait();
/*
for
example,
while(1)
sleep();
*/
execlp(xxx);

❻ 使用linux编写C语言程序,如何才能得到进程信息和父进程信息

getpid()得到当前进程的pid, getppid()是得到父进程的pid

写成语句就是
printf ( "My process ID is%d\n", getpid());
printf ( "My parent's process ID is%d\n", getppid());

记得要添加头文件 #include <stdio.h>

❼ linux中如何更改程序的父进程

当父进程比子进程先结束时,linux内核会为子进程完成“寻父”过程,一般是把init(pid=1)进程当作子进程的父进程(就是设置子进程的ppid为1),最后子进程结束时,init进程负责wait子进程(释放子进程的task_struct结构体),手动更改好像不行的吧。

阅读全文

与linux获取父进程相关的资料

热点内容
安卓手机微信发不出视频怎么弄 浏览:229
压缩机专用工具 浏览:575
qtcreator可以编译cp吗 浏览:405
小项目是云服务器还是本地好 浏览:14
墨痕斋是什么游戏的服务器 浏览:942
word文件如何压缩大小 浏览:279
遵义联通服务器地址是什么 浏览:29
ansys约束命令流 浏览:814
解压软件电脑版如何下载 浏览:791
闪电匕首算法球 浏览:692
linuxredis停止命令 浏览:670
大麦账号怎么加密 浏览:113
穿越火线怎么找服务器 浏览:526
秘密加密社交软件app 浏览:256
c语言编译器怎么找文件 浏览:836
数学不好能编程吗 浏览:254
微云里的视频加密 浏览:41
3大加密货币交易平台 浏览:647
钣金激光切割机编程 浏览:496
vivo手机手电筒app在哪里 浏览:787