J'ai ce problème à résoudre que je n'ai aucune idée de comment le faire parce qu'il y a seulement quelques appels système que nous pouvons utiliser pour le résoudre et je ne vois pas comment ils sont utile pour la situation.Utilisation correcte de fork, wait, exit, etc
l'exercice:
Je matrice de taille [10] [1000000] avec des nombres entiers, et pour chaque ligne de créer un nouveau processus avec fork(). L'idée de chaque processus est de parcourir tous les numéros pour cette ligne spécifique et de trouver un numéro spécifique, puis d'imprimer un message à ce sujet. C'était la première étape du problème et c'est fait. La deuxième étape consiste à imprimer le total des occurrences de ce nombre sur chaque ligne par ordre. Et à la fin, le grand total des occurrences de ce nombre.
Les appels:
Les appels système que je peux utiliser sont décrits comme celui-ci dans le document pour cet exercice:
pid_t fork(void);
void exit(int status);
pid_t wait(int *status);
pid_t waitpid(pid_t pid, int *status, int options);
Le problème:
Je ne sais pas comment le faire parce que le seul appel exit()
me permet de passer un nombre inférieur à 256, si le nombre d'occurrences est plus grand que ce nombre? Comment dois-je retourner un tel numéro?
Un autre problème:
Je ne comprends pas exactement la différence entre wait()
et waitpid()
et comment/où utiliser l'un sur l'autre. Outre les pages de manuel, existe-t-il d'autres documents dans lesquels je peux voir des exemples de code et ainsi mieux les comprendre? Ou quelqu'un peut-il m'expliquer les différences et fournir un exemple de base démontrant de telles différences?
entrée de l'échantillon et la sortie s'il vous plaît. Prenez un tableau de dimensions 3x5, où 3 = non de lignes, 5 = non d'entiers pour la brièveté. – dirkgently
Si vous avez besoin de communiquer entre les processus et que vous ne pouvez pas utiliser les codes de sortie, vous devrez étudier une autre forme d'IPC. Considérez les tuyaux (peut-être via popen). – dmckee
Pouvez-vous écrire les numéros dans un fichier, ou pouvez-vous communiquer entre les processus en utilisant STDIN/OUT? – Terry