How to get the running process’ parent process’ ID in C / C++?

How to get the running process’ parent process’ ID in C / C++?

In C and C++, you can call the getppid() library function which is a function from the POSIX library.

#include <sys/types.h>
#include <unistd.h>

pid_t getppid(void);   

getppid() returns the process ID of the parent of the calling process.

Example usage:

getppid.c

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
  pid_t ppid = getppid();

  printf("ppid: %lun", ppid);
}

Build and run it:

$ gcc getppid.c -o s && ./s
ppid: 22312

Verify the pid of the parent process (the Bash shell):

$ echo $$
22312

Similar Posts

  • Squeezing Space in LaTeX – SysTutorials QA

    How to squeeze space in Latex? A good tutorial about “squeezing space in LaTex” in here from the Cambridge University’s website: http://www.eng.cam.ac.uk/help/tpl/textprocessing/squeeze.html These settings work great for me: setlength{textfloatsep}{1pt} setlength{abovecaptionskip}{1pt} setlength{belowcaptionskip}{1pt} A more aggressive configuration to squeeze space in a LaTex doc: % save space usepackage{enumitem} setlist{nolistsep} % no space between refs usepackage{bibspacing} setlength{bibspacing}{baselineskip} usepackage[small,compact]{titlesec}…

  • How to print a plain text file to printers from a terminal in Linux

    How to quickly print a plain text file to printers from a terminal in Linux? You can also use enscript: enscript – convert text files to PostScript, HTML, RTF, ANSI, and overstrikes https://www.systutorials.com/docs/linux/man/1-enscript/ enscript text-file The lp command can print a plain text file to a printer. My favorite command: cat text-file | lp -o…

  • Why I got message “invalid syntax, continuing…” when I execute “sysctl”?

    When I tried to apply new configuration in /etc/sysctl.conf, I got following message. warning: /etc/sysctl.conf(44): invalid syntax, continuing… Sounds like your changed /etc/sysctl.conf has problem. You may post the content of your /etc/sysctl.conf here to let other have a check. net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1…

  • Several Vim Tips (in Chinese)

    窗口模式操作 CTRL-W CTRL-S 将当前窗口分割为两窗口 CTRL-W CTRL-W 切换窗口 CTRL-W j 切换到下一窗口 CTRL-W k 切换到上一窗口 CTRL-W CTRL-R 将窗口的位置轮换 CTRL-W CTRL-_ 将当前窗口最小化 CTRL-W CTRL-= 将所有窗口变为等大 搜索和替换 /word 搜索word 搜索之后按回车高亮显示,n 下一个 p 上一个 :%s/模式/替换成的内容/gc % 全局选项,如果没有开启则只在当前行进行替换 g 表示 全局替换,如果没有g选项则只替换每行出现的第一个单词 c 表示需要确认 Esc替换按键 ESC键在键盘的左上角,按起来很不方便,而在VIM中ESC经常用到,其实有一个同样作用的组合按键:CTRL-[,这两个按起来手基本不用做大的动作,方便多了。 块操作 使用visual可视模式 v 进入可视模式,移动光标可进行选择 CTRL-Q 或 CTRL-V 进入列式模式,可进行块操作,选定的是一个矩形块。如果使用behave mswin CTRL-V可能映射成为past Read more: How to convert between…

Leave a Reply

Your email address will not be published. Required fields are marked *