salut à tous,
j'essai d'utiliser la fonction getpgid, mais mon compilateur (gcc biensur) m'envoie bouler... j'inclue pourtant bien le fichier unistd.h. Si quelqu'un à une idée, ca me ferait bien plaisir ... :)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <ctype.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
void SysStopCSDMN(long pid)
{
long gpid ;
gpid = getpgid(pid);
killpg(gpid, SIGTERM);
}
In function SysStopCSDMN:implicit declaration of function getpgid
# grep -R getpgid /usr/include
Posté par slack . Évalué à 1.
Ajoute le bon include !
[^] # Re: grep -R getpgid /usr/include
Posté par str000mff . Évalué à 1.
NAME
setpgid, getpgid, setpgrp, getpgrp - set/get process group
SYNOPSIS
#include <unistd.h>
int setpgid(pid_t pid, pid_t pgid);
pid_t getpgid(pid_t pid);
int setpgrp(void);
pid_t getpgrp(void);
...
:/
[^] # et la fin du man...
Posté par daggett . Évalué à 2.
donc, mets ces #define avant tes #include. (la lecture de /usr/include/unistd.h montre que cette fonction n'est déclarée que quand ce #define est actif).
[^] # Re: et la fin du man...
Posté par str000mff . Évalué à 1.
en tout cas ca rend le truc pas tres beau parceque sous sun ou freebsd y'a pas besoin de ca ... et ca pourri la portabilité. :/
[^] # Re: et la fin du man...
Posté par Krunch (site web personnel) . Évalué à 2.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: et la fin du man...
Posté par str000mff . Évalué à 1.
# _GNU_SOURCE
Posté par Sebastian . Évalué à 1.
Pour un bien, je crois qu'il faille déclarer #define _GNU_SOURCE avant l'include #include <unistd.h> pour que getpgid() soit pris en compte.
[^] # Re: _GNU_SOURCE
Posté par str000mff . Évalué à 1.
To get the prototypes under glibc, define both _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED, or use "#define _XOPEN_SOURCE n" for some integer n larger than or equal to 500.
Il ne s'agit donc plus de _GNU_SOURCE mais de _XOPEN_SOURCE. Bref, l'évolution de unistd.h n'a pas été faite en pensant aux vieux codes sources et à la portabilité ... C'est vraiment dommage :/
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.