Bonjour,
Comme dit dans le titre j'ai ces erreurs suivantes a la compilation :
CC server.c
Dans le fichier inclus à partir de server.c:11:
/usr/include/sys/ipc.h:25:3: attention : #warning "Files using this header must be compiled with _SVID_SOURCE or _XOPEN_SOURCE"
server.c: Dans la fonction «main» :
server.c:90: erreur: storage size of «action1» isn»t known
server.c:92: attention : déclaration implicite de la fonction « «sigfillset» »
server.c:94: attention : déclaration implicite de la fonction « «sigaction» »
server.c:100: erreur: storage size of «action2» isn»t known
server.c:295: attention : déclaration implicite de la fonction « «kill» »
make: *** [server.o] Erreur 1
Voici le code concerné :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <signal.h> // SIGUSR1
#include <unistd.h> //close
#include <arpa/inet.h> //inet_addr
#include <errno.h> // errno
#include <sys/ipc.h> // shmget
#include <sys/shm.h> // shmget
int main() {
...
int SA_RESTART;
struct sigaction action1 __attribute__((unused));
action1.sa_handler = gestion_signal_SIGUSR1;
sigfillset(&action1.sa_mask);
action1.sa_flags = SA_RESTART;
if( sigaction(SIGUSR1, &action1, NULL) == -1) {
fprintf(stderr, "Erreur sigaction() !\n");
perror("sigaction ");
exit(EXIT_FAILURE);
}
struct sigaction action2 __attribute__((unused));
action2.sa_handler = gestion_signal_SIGUSR2;
sigfillset(&action2.sa_mask);
action2.sa_flags = 0;
if( sigaction(SIGUSR2, &action2, NULL) == -1) {
fprintf(stderr, "Erreur sigaction() !\n");
perror("sigaction ");
exit(EXIT_FAILURE);
}
...
}
Je ne comprend pas pourquoi j'ai des declarations implicite des fonctions sigfillset et sigaction (et kill dailleur) vu que j'ai inclu le header necessaire signal.h . Et je ne comprend pas l'erreur de storage pour mes 2 structures sigactions. C'est la premiere fois que je vois ça normalement la taille d'une structure sigaction ne doit pas etre donné non ??
merci si vous pouvez m'adier
cdt
tom
Partager