Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/06/2013, à 22:44

samoudi

exercice sur fork()

pouvez -vous me donner l'arbre des processus créés par ce programme:



#include <unistd.h>
int main(){
    if (fork())
        (fork() || ( fork()) && fork() )) && fork() ;
    else
        fork();
    ;
    return 0;
}

Hors ligne

#2 Le 23/06/2013, à 22:56

myrddin772

Re : exercice sur fork()

euh... n'y aurait-il pas un soucis de parenthèse à ce niveau ?

(fork() || ( fork()) && fork() )) && fork() ;

"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

#3 Le 23/06/2013, à 23:01

samoudi

Re : exercice sur fork()

voila j'ai corrigé la ligne
(    fork() ||   ( fork() && fork() )    )    &&    fork() ;

Hors ligne

#4 Le 23/06/2013, à 23:03

myrddin772

Re : exercice sur fork()

Maintenant, il ne me reste plus qu'à comprendre ce que fait la commande fork() wink


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

#5 Le 23/06/2013, à 23:15

samoudi

Re : exercice sur fork()

tu ne sais meme  comment s'utilise fork() !!!!!
comme ça tu n'arrive plus à repondre à ma question

Dernière modification par samoudi (Le 23/06/2013, à 23:16)

Hors ligne

#6 Le 23/06/2013, à 23:17

myrddin772

Re : exercice sur fork()

Je n'avais pas compris que cet exercice était réservé aux seuls connaisseurs...

Désolé


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

#7 Le 23/06/2013, à 23:27

Korak

Re : exercice sur fork()

Bonjour,

Voici ce qu'est un fork si je ne me trompe pas.

Et, toujours si je ne me trompe pas, tu utilises le langage de programmation C. Juste?

Mais je ne comprend rien à ceci:

if (fork())
        (fork() || ( fork()) && fork() )) && fork() ;
    else
        fork();

Peux-tu expliquer ce que cette condition est censée faire? Parce que là, je n'y comprend rien.

Dernière modification par Korak (Le 23/06/2013, à 23:29)


OS: Ubuntu 22.04 64 bits + Windows 11 64 bits en dualboot (BIOS UEFI, Secure Boot activé et table de partitions GPT)
PC portable HP 17-CP0308NF   Processeur: AMD Ryzen 7 5700U avec carte graphique AMD Lucienne intégrée au processeur.   Mémoire vive: 16 Go RAM
Quand vous ne trouvez pas la solution à un problème, cherchez des pistes menant à la solution !

Hors ligne

#8 Le 23/06/2013, à 23:35

samoudi

Re : exercice sur fork()

oui c'est un programme ecrit en c sous linux

apres l'execution de ce programme un nombre de processus qui seront créés sous un arborescence

que je cherche

Hors ligne

#9 Le 23/06/2013, à 23:38

pires57

Re : exercice sur fork()

ouai c'est bien du C.
Je ne sais pas ou tu as chopper ce bout de code mais je ne vois pas trop son utilité.
edit: Pour linux, ce n'étais pas la peine de préciser, fork ne peut être utilisé sous windows

Dernière modification par pires57 (Le 23/06/2013, à 23:39)


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#10 Le 23/06/2013, à 23:44

samoudi

Re : exercice sur fork()

je cherche pas à savoir son utilité
je veux juste savoir ce que fait ce programme
cela m'est trés utile
il me servira à comprendre plusieurs choses

Hors ligne

#11 Le 23/06/2013, à 23:45

myrddin772

Re : exercice sur fork()

Merci (encore) Korak wink

J'avais compris que fork() créait un processus identique à celui d'où l'appel était lancé mais, si j'ai compris les quelques pages que j'ai pu lire en vitesse, il renvoie un pid (nul pour le processus fils)...

Mais c'est vrai que le principe de "copie le processus, et si tu n'y parviens pas, ben fais le..." est assez, comment dire, troublante.


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

#12 Le 23/06/2013, à 23:53

Korak

Re : exercice sur fork()

myrddin772 a écrit :

J'avais compris que fork() créait un processus identique à celui d'où l'appel était lancé

Je ne dit pas que tu n'avais pas compris. J'ai posé la question de savoir si je suis dans le bon concernant fork. Ce qui est apparemment le cas.

Mais je ne comprend pas ce que cette condition:

if (fork())
        (fork() || ( fork()) && fork() )) && fork() ;
    else
        fork();

Est censée faire.

Mais alors là, je ne comprend vraiment pas.

Si quelqu'un veux bien expliquer ce que cette condition est censée faire, ça pourrait peut-être éclairer ma lanterne.


OS: Ubuntu 22.04 64 bits + Windows 11 64 bits en dualboot (BIOS UEFI, Secure Boot activé et table de partitions GPT)
PC portable HP 17-CP0308NF   Processeur: AMD Ryzen 7 5700U avec carte graphique AMD Lucienne intégrée au processeur.   Mémoire vive: 16 Go RAM
Quand vous ne trouvez pas la solution à un problème, cherchez des pistes menant à la solution !

Hors ligne

#13 Le 24/06/2013, à 07:24

tiramiseb

Re : exercice sur fork()

Salut,

La fonction "fork" fait un effet un fork du processus (c'est comme ça qu'on crée des logiciels multi-processus, par exemple Apache utilise cette fonction pour faire "naître" la quantité de listeners dont li a besoin).
Elle peut retourner trois choses :
- au parent, le PID du processus enfant
- à l'enfant, le nombre 0
- si le fork échoue, le nombre -1

De son côté, "if" interprète un entier de la manière suivante :
- faux s'il est égal à 0
- vrai pour tout nombre, positif au négatif.

Les "&&" et "||" sont utilisés dans énormément de langages pour faire une syntaxe plus simple que "if" :

A && B || C

... est équivalent à :

if (A) {
    B
} else {
    C
};

Maintenant, cette question précise ressemble furieusement à un exercice/examen/concours ou autre, alors tant que tu n'auras pas expliqué exactement pourquoi tu cherches à comprendre ça, d'où tu l'as tiré et ce que tu comptes en faire, je n'expliquerai pas ton bout de code. Car je ne veux pas faire tes exercices à ta place.

Hors ligne

#14 Le 25/06/2013, à 22:03

myrddin772

Re : exercice sur fork()

Tiens, c'est étrange de ne plus avoir de nouvelles... tongue

Sinon, il me semble (par contre je ne sais absolument plus où j'ai lu ça) que certain langages/compilateurs "simplifient" les tests de condition : ils n'évaluent la deuxième opérande d'un ...
- OU lorsque la première est vraie,
- ET lorsque la première est fausse.
Est-ce une connerie ou pas ?


"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows et Ian Parberry
Si tu ne sais pas : demande, si tu sais : partage !

Hors ligne

#15 Le 25/06/2013, à 22:22

pires57

Re : exercice sur fork()

Après quelques recherches j'ai retrouver exactement le même code couplé à la même question. Il s'agit d'un exo données pour une licence en réseau, dans tout les cas, ce n'est pas très honnête de ta part de faire faire tes exo par d'autre personnes. Je comprend mieux pourquoi tu n'as pas voulu dire d'où venait ce bout de code...
Pour ce qui est des conditions, en effet, tu sort de la boucle quand la condition est respectée  donc le reste n'est pas analyser


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#16 Le 06/12/2015, à 13:05

hanouna9415

Re : exercice sur fork()

svp je besoin la  correction du ce exercice  ....merciiii

Hors ligne

#17 Le 06/12/2015, à 13:20

tiramiseb

Re : exercice sur fork()

Ça c'est complètement du foutage de gueule !

Hors ligne

#18 Le 06/12/2015, à 13:27

Korak

Re : exercice sur fork()

tiramiseb a écrit :

Ça c'est complètement du foutage de gueule !

lol lol lol


OS: Ubuntu 22.04 64 bits + Windows 11 64 bits en dualboot (BIOS UEFI, Secure Boot activé et table de partitions GPT)
PC portable HP 17-CP0308NF   Processeur: AMD Ryzen 7 5700U avec carte graphique AMD Lucienne intégrée au processeur.   Mémoire vive: 16 Go RAM
Quand vous ne trouvez pas la solution à un problème, cherchez des pistes menant à la solution !

Hors ligne

#19 Le 06/12/2015, à 16:31

pires57

Re : exercice sur fork()

On es pas la pour faire vos exos! On peut éventuellement vous orienter mais c'est tout, vos diplômes vous devez les obtenir par vos travaux, pas par les notre.


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#20 Le 06/12/2015, à 16:42

Zakhar

Re : exercice sur fork()

pires57 a écrit :

On es pas la pour faire vos exos! On peut éventuellement vous orienter mais c'est tout, vos diplômes vous devez les obtenir par vos travaux, pas par les notre.

En fait, ça puait dès le début la demande de solution à un exercice !.. lol

C'est pas le premier qu'on a ici, ni le dernier qu'on aura jamais !..

Dernière modification par Zakhar (Le 06/12/2015, à 16:43)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#21 Le 06/12/2015, à 17:20

cqfd93

Re : exercice sur fork()

hanouna9415 a écrit :

svp je besoin la  correction du ce exercice  ....merciiii

Inscrit aujourd'hui juste pour demander cette correction... Ouaf, ouaf, ouaf !!!

Relis tes cours et creuse-toi la tête, ça sera bien plus efficace !


cqfd93

Hors ligne

#22 Le 06/12/2015, à 19:32

hanouna9415

Re : exercice sur fork()

y a pas pire de demander de savoir quelque chose que ne jamais avoir la connaissance ... vos commentaires me montrent bien que vous ne savez pas la réponse alors arrêtez d'écrire vos bêtises ... merci

Hors ligne

#23 Le 06/12/2015, à 19:44

cqfd93

Re : exercice sur fork()

T'inquiète pas pour nos connaissances. Elles sont certainement bien au-dessus de ce que tu peux acquérir en procédant comme tu le fais sans chercher à faire fonctionner tes neurones. Quant à ceux qui écrivent des bêtises, les lecteurs jugeront...


cqfd93

Hors ligne

#24 Le 06/12/2015, à 19:47

tiramiseb

Re : exercice sur fork()

Ce n'est pas en cherchant des réponses toutes faites qu'on acquiert de connaissances. C'est en travaillant, surtout quand on est justement en train de suivre des études dans le domaine.
Quant à nous, pendant bois études on a fait comme tu devrais le faire : réfléchir.

Hors ligne

#25 Le 06/12/2015, à 19:53

hanouna9415

Re : exercice sur fork()

je veux seulement savoir vos réponses en les comparent avec la mienne ni plus ni moins .... si vous l'auraient pas alors y a plus pourquoi faire ce genre de discussion ... a dieu merci !

Hors ligne