Bonjour bonjour, ma question est toute simple, j'ai un gros problème sur l'utilisation de la fonction signal, j'ai lu le man mais rien à faire je ne comprend pas l'utilisation de la fonction pour définir le comportement lors de la réception d'un signal. Je vous poste un petit bout du code, sans doute saurez vous m'aider.
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 
 | void    exec_or_die(int *flag, char **path, char **tab, char **env)
{
  char          *bin;
  int           j;
  int           status;
  pid_t         pid;
  static int    co = 0;
  void          (*point)(pid_t);
 
  point = &check_process;
  bin = malloc(sizeof(*bin) * (my_strlen(path[co]) + (*tab == NULL ? 0 : my_strlen(tab[0])) + 2));
  bin = my_strcat(path[co], tab[0], bin);
  if (path[co + 1] == 0)
    co = 0;
  if ((j = access(bin, F_OK)) == 0)
    if ((j = access(bin, X_OK)) == 0)
      {
        *flag = 1;
        pid = fork();
        signal(SIGINT, (*point)(pid))(0);
        if (pid > 0)
          wait(&status);
        else if (pid == 0)
          execve(bin, tab, env);
      }
  ++co;
  free(bin);
} | 
 Et l'erreur est lors de la compilation, cela donne :
error: invalid use of void expression
A la ligne 
	
	signal(SIGINT, (*point)(pid))(0);
 Merci d'avance à l'apprenti codeur que je suis  .
 .
						
					
Partager