Giriş
Get process id demek. Şöyle yaparız.
Örnek
Şöyle yaparız.
Get process id demek. Şöyle yaparız.
pid_t pid = getpid();
İki thread aynı uygulama içinde çalıştıkları için getpid() metodu aynı değeri döner. Eski C kütüphanelerinde NPTL kullanılmadığı için dönmüyor! getpid kernel'da şuna benzer bir şeye tekabül eder.static inline pid_t sys_getpid(void)
{
pid_t pid;
asm volatile("int %1\n"
: "=a" (pid)
: "i" (INT_SYS_GETPID)
: "cc", "memory");
return pid;
}
Şöyle yaparız.
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
void* thread_function (void* arg)
{
fprintf (stderr, "child thread pid is %d\n", (int) getpid ());
/* Spin forever. */
while (1);
return NULL;
}
int main ()
{
pthread_t thread;
fprintf (stderr, "main thread pid is %d\n", (int) getpid ());
pthread_create (&thread, NULL, &thread_function, NULL);
/* Spin forever. */
while (1);
return 0;
}
Çıktı olarak şunu alırız.main thread pid is 3615
child thread pid is 3615
Hiç yorum yok:
Yorum Gönder