[Linux] [C / C ++] Résumé de la façon d'obtenir pid, ppid, tid

Même si vous recherchez par Linux, pid, seule la méthode en Bash est disponible, donc un résumé de la méthode en C / C ++

API à utiliser

pid => getpid() Man page of GETPID

ppid => getppid() Man page of GETPID

tid => syscall(SYS_getid) Man page of GETTID

Exemple d'implémentation

test.cpp


#include <iostream>
#include <future>

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

pid_t gettid(void) {
	return syscall(SYS_gettid);
}

int main() {
	std::cout << "[0] pid  : " << getpid()  << std::endl;
	std::cout << "[0] ppid : " << getppid() << std::endl;
	std::cout << "[0] tid  : " << gettid()  << std::endl;

	auto func = [] {
		std::cout << "[1] pid  : " << getpid()  << std::endl;
		std::cout << "[1] ppid : " << getppid() << std::endl;
		std::cout << "[1] tid  : " << gettid()  << std::endl;
	};

	auto th = std::thread(func);
	th.join();

	return 0;
}

Résultat d'exécution


$ g++ -pthread -std=gnu++11 test.cpp && ./a.out
[0] pid  : 13762
[0] ppid : 9459
[0] tid  : 13762
[1] pid  : 13762
[1] ppid : 9459
[1] tid  : 13763

Relation

[Linux] [C / C ++] Get tid (thread id) / Wrap pthread_create pour obtenir le tid du thread enfant --Qiita

Recommended Posts

[Linux] [C / C ++] Résumé de la façon d'obtenir pid, ppid, tid
[Linux] [C / C ++] Obtenez tid (id du thread) / Wrap pthread_create pour obtenir le tid du thread enfant
Résumé de l'utilisation de pandas.DataFrame.loc
Résumé de l'utilisation de pyenv-virtualenv
Résumé de l'utilisation de csvkit
[Linux] [C / C ++] Comment obtenir la valeur d'adresse de retour d'une fonction et le nom de fonction de l'appelant
J'ai essayé de résumer brièvement la procédure de démarrage du développement de Django
[Python] Résumé de l'utilisation des pandas
Comment se débarrasser des longues inclusions
[Python2.7] Résumé de l'utilisation d'unittest
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
Résumé de l'écriture d'AWS Lambda
Résumé de la façon d'importer des fichiers dans Python 3
Résumé de l'utilisation de MNIST avec Python
Comment obtenir des éléments de type dictionnaire de Python 2.7
Comment obtenir le nombre de chiffres en Python
Comment utiliser le contrôleur audio C216 sur Arch Linux
[Langage C] [Linux] Récupère la valeur de la variable d'environnement
[Python] Résumé de la façon de spécifier la couleur de la figure
Résumé de la façon de partager l'état avec plusieurs fonctions
Comment limiter la publication de l'API dans la bibliothèque partagée en langage C de Linux
linux / c> lien> Obtenir le résultat de l'exécution de la commande shell dans le programme C> On m'a appris à utiliser popen ()
Comment se débarrasser des pictogrammes personnalisés du serveur dans message.content
[python] Résumé de la récupération des listes et des éléments du dictionnaire
Résumé des types de distribution Linux
[Python] Résumé de l'utilisation des fonctions de fractionnement et de jointure
Comment obtenir le pointeur d'instruction (= compteur de programme) dans le noyau Linux
Comment obtenir une liste d'exceptions intégrées pour python
Résumé de l'écriture des fichiers .proto utilisés dans gRPC
Un bref résumé de Linux
Comment obtenir un aperçu de vos données dans Pandas
Comment obtenir une liste de liens à partir d'une page de wikipedia
[Linux] Comment désactiver la mise à jour automatique du fichier /etc/resolv.conf (Redhat)
Comment afficher une colonne de fichiers spécifiée sous Linux (awk)
[Hugo] Résumé de la façon d'ajouter des pages au site créé avec Learn
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
Comment obtenir le pilote d'imprimante pour Oki Mac sous Linux
[Python] Comment obtenir la fraction d'un nombre naturel à grande vitesse
[Python] Comment obtenir le premier et le dernier jour du mois
[Linux] Comment désactiver la mise à jour automatique du fichier /etc/resolv.conf (AmazonLinux2)
Comment obtenir tout le trafic via VPN avec OpenVPN sous Linux
Comment afficher le résultat de sortie de la commande man Linux dans un fichier
Comment obtenir les coordonnées de sommet d'une entité dans ArcPy
[Linux] [C / C ++] Résumé de la méthode d'acquisition des traces
Comment installer VMware-Tools sur Linux
Comment obtenir la version Python
Comment installer MBDyn (Linux Ubuntu)
Comment démarrer avec Scrapy
Comment démarrer avec Python
Comment démarrer avec Django
Comment envelopper C en Python
Comment créer un pilote de langage MongoDB C
Comment vérifier la version du système d'exploitation Linux
Résumé de la façon d'écrire des instructions if (Scala, Java, Rust, langage C, C ++, langage Go, PHP, Perl, Python, Ruby)
Récapitulatif de la façon d'écrire un décrément d'incrémentation (Scala, Java, Rust, langage C, C ++, langage Go, PHP, Perl, Python, Ruby, JavaScript)
[Linux] Une commande pour obtenir une liste des commandes exécutées dans le passé