
是的。Unix/Linux *** 作系统提供了一个fork()调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为 *** 作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程子进程内返回。子进程永远返回0,而父进程返回子进程的ID。因为一个父进程可以fork出很多子进程,所以父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的ID。
//获取对应进程名的ID
DWORD GetSpecifiedProcessId(const char pszProcessName)
{
DWORD id;
//获得系统快照句柄 (通俗的讲, 就是得到当前的所有进程)
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0) ;
PROCESSENTRY32 pInfo; //用于保存进程信息的一个数据结构
pInfodwSize = sizeof(pInfo);
//从快照中获取进程列表
Process32First(hSnapShot, &pInfo) ; //从第一个进程开始循环
do
{
//这里的 pszProcessName 为你的进程名称
if(strcmp(strlwr(_strdup(pInfoszExeFile)), pszProcessName) == 0)
{
id = pInfoth32ProcessID ;
break ;
}
}while(Process32Next(hSnapShot, &pInfo) != FALSE);
return id; //id 就是你要的进程PID 了
}
这个代码是我从网上复制过来的 但是注释是我给加的
以后别弄个0 分放这里 真想扁你
打开Windows任务管理器
1Ctrl+shift+esc
2Ctrl+alt+del
3Ctrl+alt+delete
选择进程
这上面有
打开查看(v)
选择列(s)把PID勾选了再回到进程即可
在Android中取得当前进程名
说明:上面代码关键的两个地方解释,也就是取得当前进程名
androidosProcessmyPid()) //获取PID,目前获取自己的也只有该API
ActivityManagerRunningAppProcessInfo类
说明: 封装了正在运行的进程信息
常用字段:
int pid 进程ID
int uid 进程所在的用户ID
String processName 进程名,默认是包名或者由Android:process=””属性指定
String [ ] pkgList 运行在该进程下的所有应用程序包名
按快捷键“win+R”,输入cmd后按回车进入DOS环境:
输入tasklist回车
taskkill可以根据进程名直接杀掉的 例如杀掉记事本进程 taskkill /f /im notepadexe
BAT脚本获取当前cmdexe进程PID/PPID/信息(自杀脚本)
以上就是关于得到子进程id号的系统调用是getppid全部的内容,包括:得到子进程id号的系统调用是getppid、VC 如何得到进程的ID号、如何查看某个程序的进程ID等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)