comment suspendre/relancer les processus en C (linux)

Bonjour je dois écrire 2 fonctions pour les appels-système qui permettra de gérer l'exécution de la tâche dans un système d'exploitation. Je ne pouvais pas trouver un moyen de suspendre/relancer les processus. J'ai trouvé une liste de signaux et je sais que la fonction kill et voici mon code:

#include <stdlib.h>
#include <signal.h>

typedef struct File
{
  int pid;
  struct File *pids;
} *file;

file file1 = NULL;

//this fonction is to suspend a process using its pid number
int V(int pid_num)
{
  //does the kill fonction just kill the process or will it take into account the signal argument?
  kill(pid_num, SIGSTOP);
  file1 = ajouter(file1, pid_num);
  return 0;
}

//this is to restart the process
int C()
{
  if (file1 != NULL)
  {
    //I know the kill fonction is not the right one but I just don't know any other to take as argument the pid of a process to restart it
    kill(file1->pid, SIGCONT);
  }
  return 0;
}

//this fontion adds pid number to our structure
file ajouter(file file_n, int pid)
{
  file nouveau = malloc(sizeof(file));
  nouveau->pid = pid;
  nouveau->pids = file_n;
  return nouveau;
}

remarque: ce code n'est pas vraiment censé travailler, c'est juste un peu de simulation
merci beaucoup à l'avance

Pourquoi utilisez-vous un mondial file1 et la donner en paramètre à ajouter ? c'est inutile, le choix entre mondial ou pas, mais ne se mélangent pas. Aussi, préférez next au lieu de pids que c'est une liste chaînée

OriginalL'auteur vallllll | 2012-02-15