Getting Process Own Pid in C and C++
Posted on In Programming, QAHow to get the running process’ pid in C / C++?
In C and C++, you can call the getpid()
library function which is a function from the POSIX library.
#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void);
getppid()
returns the process ID of the calling process.
An example C program to get self process ID getpid.c
:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t pid = getpid();
printf("pid: %lu\n", pid);
}
Build and run it:
$ gcc getpid.c -o s && ./s
pid: 7108
Please update the reuslt section with actual result.
$ gcc getpid.c -o s && ./s
ppid: 7108
But printf is
printf(“pid: %lun”, pid);
How come it prints “ppid” for print statement of “pid”.
Hello, thanks for the idea but getpid() returns an int so the format in printf is abnormal : %lun should be just %d (and the n in lun is probably a typo)
the error :
error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘pid_t’ {aka ‘int’}
x86_64 architecture, 64 bits