Equivalent sous Lunix

louizil Messages postés 6 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 mars 2011 - 16 mars 2011 à 21:24
louizil Messages postés 6 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 mars 2011 - 19 mars 2011 à 23:45
Bonsoir,
j'ai fait un code qui afiche tout les PID des processus et des threads sous widows,il marche bien.
moi je veut le marcher sous lunix,s'il veut plait est ce qu'il ya une methode pour le marcher sous lunix ou bien un equivalant entre les fonctions et marci, voila mon code:
#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>
#include
int main()
{ int i;
pid_t getpid(void);
HANDLE pro;
HANDLE th;
PROCESSENTRY32 pe;
THREADENTRY32 te;
pro = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (Process32First(pro, &pe))
{
th = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, 0);
te.dwSize = sizeof(THREADENTRY32 );
do{
printf( "\n\n====================================================" );
printf( "\n NOM DE PROCESSUS: %s", pe.szExeFile );
printf( "\n ====================================================" );
printf( "\n ID de processus = %d",pe.th32ProcessID);
printf( "\n Nombre de threads = %d",pe.cntThreads );
printf( "\n ID du processus parent = %d", pe.th32ParentProcessID);
if( Thread32First( th, &te ) )
{ i=0;
do {
printf( "\n ID du THREAD numero %d = %d",i,te.th32ThreadID);
i=i+1;
}
while( Thread32Next(th, &te ) );
CloseHandle(th);
}
}
while (Process32Next(pro,&pe));
CloseHandle(pro );
}
return 0;
}

6 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
16 mars 2011 à 21:37
Lunix, n'existe pas.
Linux ou UNIX peut être ?

Tous les processus sont dans le dossier /proc, il te suffit de les lister :)
Un post intéressant qui en parle:
http://ubuntuforums.org/showpost.php?s=165381dee727591295d80bab7cde4dcd&p=6593782&postcount=5

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
louizil Messages postés 6 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 mars 2011
16 mars 2011 à 21:44
oui oui c linux c juste un faute de frappe et merci pour votre reponse.
0
louizil Messages postés 6 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 mars 2011
16 mars 2011 à 21:48
je veut aussi afficher les pid des threads et merci pour votre aide
0
louizil Messages postés 6 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 mars 2011
17 mars 2011 à 23:36
Bonsoir,
j'ai fait un code qui afiche tout les PID des processus et des threads sous widows,il marche bien.
moi je veut le marcher sous lunix,s'il veut plait est ce qu'il ya une methode pour le marcher sous lunix ou bien un equivalant entre les fonctions et marci, voila mon code:
#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>
#include
int main()
{ int i;
pid_t getpid(void);
HANDLE pro;
HANDLE th;
PROCESSENTRY32 pe;
THREADENTRY32 te;
pro = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (Process32First(pro, &pe))
{
th = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, 0);
te.dwSize = sizeof(THREADENTRY32 );
do{
printf( "\n\n====================================================" );
printf( "\n NOM DE PROCESSUS: %s", pe.szExeFile );
printf( "\n ====================================================" );
printf( "\n ID de processus = %d",pe.th32ProcessID);
printf( "\n Nombre de threads = %d",pe.cntThreads );
printf( "\n ID du processus parent = %d", pe.th32ParentProcessID);
if( Thread32First( th, &te ) )
{ i=0;
do {
printf( "\n ID du THREAD numero %d = %d",i,te.th32ThreadID);
i=i+1;
}
while( Thread32Next(th, &te ) );
CloseHandle(th);
}
}
while (Process32Next(pro,&pe));
CloseHandle(pro );
}
return 0;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
basssem81 Messages postés 11 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 21 mars 2011
19 mars 2011 à 16:15
je pense que tu cherche ceci
le programme suivant affiche tous les noms des processus avec leur pids.

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <dirent.h>
#include
#include <fcntl.h>


inline char * stat_entry ( char *buf, const char *d_name )
{
bzero(buf,sizeof(buf));
return strcat(strcat(strcpy(buf,"/proc/"),d_name),"/stat");
}

main()
{
DIR *dir;
struct dirent *d;
pid_t pid, procpid = -1;
char tmp[100];

if ((dir opendir("/proc")) (DIR *)0) {
printf("cannot opendir(/proc)\n");
return -1;
}

while((d = readdir(dir)) != (struct dirent *)0) {
/* Only directories with pid as names */
if ((pid (pid_t)atoi(d->d_name)) 0) continue;
int fp;
if ((fp = open(stat_entry(tmp, d->d_name),O_RDONLY,0)) != -1) {
char entry[1024];
bzero(entry,1024);
read(fp,entry,1024);
close(fp);

char *start = &entry[0];
char *end = start;
while (*end!=' ') end++;
*end = 0;
procpid = (pid_t)atoi(start);
printf(" PID: %s ", start);
end++;
//if (*end!='(') // kernel ERROR
end++;
start = end;
while (*end!=' ') end++;
end--; //skip ')'
*end = 0;
printf(" NAME: %s\n",start);
procpid = -1;
}
}

closedir(dir);
return procpid;
}
0
louizil Messages postés 6 Date d'inscription samedi 4 décembre 2010 Statut Membre Dernière intervention 19 mars 2011
19 mars 2011 à 23:45
Merci pour ton reponse
Moi je veut aficher tout les PID des threads sous LINUX.
quelqu'un peut m'aider et Merci.
0
Rejoignez-nous