OVH Cloud OVH Cloud

lancer un binaire en c sur debian

16 réponses
Avatar
christo.leroy
bonjour,

voila, je viens de poser la question sur un forum de programmation en c
et on me renvoie ici, donc,
je suis en train de faire un programme en c qui va tourner sur debian,
et qui lance un binaire par une commande : systeme(binaire);

le langage c etant monotache ( c'est la reponse qu'on m'a faite sur le
forum c), le programme stoppe son execution tant que le binaire lancé
par system(...) n'a pas terminé son execution.

et on peut faire en sorte que le programme lance le binaire, et continue
sans s'inquieter de savoir s'il est fini ou pas.
on me dit que la solution est dans un appel au systeme d'exploitation (
DEBIAN ), et c'est là que j'ai besoin de vous.
la Debian permet elle cela ?
on parle de la fonction fork() ?

désolé d'etre un peu hors sujet, mais on pourrait reformuler la question
comme cela:

la Debian permet elle de contourner le fait que le C soit monotache,en
faisant tourner un programme en C qui lance un binaire (par la commande
system() ) tout en continuant son execution (sans attendre la fin du
binaire lancé).

allez, merci et bonne journée.

dédé le homard


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

10 réponses

1 2
Avatar
Erwan David
Le Wed 21/07/2004, christo.leroy disait
bonjour,

voila, je viens de poser la question sur un forum de programmation en c
et on me renvoie ici, donc,
je suis en train de faire un programme en c qui va tourner sur debian,
et qui lance un binaire par une commande : systeme(binaire);

le langage c etant monotache ( c'est la reponse qu'on m'a faite sur le
forum c), le programme stoppe son execution tant que le binaire lancé
par system(...) n'a pas terminé son execution.

et on peut faire en sorte que le programme lance le binaire, et continue
sans s'inquieter de savoir s'il est fini ou pas.
on me dit que la solution est dans un appel au systeme d'exploitation (
DEBIAN ), et c'est là que j'ai besoin de vous.
la Debian permet elle cela ?
on parle de la fonction fork() ?

désolé d'etre un peu hors sujet, mais on pourrait reformuler la question
comme cela:

la Debian permet elle de contourner le fait que le C soit monotache,en
faisant tourner un programme en C qui lance un binaire (par la commande
system() ) tout en continuant son execution (sans attendre la fin du
binaire lancé).



Oui. Mais visiblement tu as besoin d'apprendre la programmation
Unix. Pour ça je te conseille
"La programmation sous Unix" de Jean-Marie Rifflet, ce fut chez
Edisciences puis interEditions, je ne connais pas l'éditeur actuel.


--
Erwan


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jean-Michel OLTRA
bonjour,


Le mercredi 21 juillet 2004, christo.leroy a écrit...


et on peut faire en sorte que le programme lance le binaire, et continue
sans s'inquieter de savoir s'il est fini ou pas.
on me dit que la solution est dans un appel au systeme d'exploitation (
DEBIAN ), et c'est là que j'ai besoin de vous.
la Debian permet elle cela ?
on parle de la fonction fork() ?



Pas trop de rapport entre Debian et la programmation, que ce soit en C
ou en autre chose, à part les trucs propriétaires.

Si tu fais un fork() suivi d'un exec() dans le fils, et que le père
n'attende pas la fin du fils avec WNOHANG dans waitpid() ou wait3() ou
wait4(), alors tu pourras obtenir ce que tu souhaites.

--
jm


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
christo.leroy
Erwan David a écrit :

Le Wed 21/07/2004, christo.leroy disait


en effet, je n'en suis pas encore là, c'est le chapitre suivant de ma formation, merci d'avoir répondu.





bonne journée






Oui. Mais visiblement tu as besoin d'apprendre la programmation
Unix. Pour ça je te conseille
"La programmation sous Unix" de Jean-Marie Rifflet, ce fut chez
Edisciences puis interEditions, je ne connais pas l'éditeur actuel.









--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
christo.leroy
> bonjour,
ouaou, merci, je vais m'y plonger, et voila le rapport avec la Debian qui arrive:




où pourrais je trouver 'c++ reference' en français, pour l'avoir en
français dans kdevelop sous woody sivouplait ?
parce qu'en anglais c'est bien ,mais en français c'est mieux. ( et pour
les anglais c'est le contraire ).
est ce que c'est un paquet en lui meme ou bien est ce qu'il fait partie
d'un autre paquet ?
allez merci et bonne journée


Le mercredi 21 juillet 2004, christo.leroy a écrit...




et on peut faire en sorte que le programme lance le binaire, et continue
sans s'inquieter de savoir s'il est fini ou pas.
on me dit que la solution est dans un appel au systeme d'exploitation (
DEBIAN ), et c'est là que j'ai besoin de vous.
la Debian permet elle cela ?
on parle de la fonction fork() ?





Pas trop de rapport entre Debian et la programmation, que ce soit en C
ou en autre chose, à part les trucs propriétaires.

Si tu fais un fork() suivi d'un exec() dans le fils, et que le père
n'attende pas la fin du fils avec WNOHANG dans waitpid() ou wait3() ou
wait4(), alors tu pourras obtenir ce que tu souhaites.








--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
ARTUS Guillaume
--yrj/dFKFPuw6o+aM
Content-Type: text/plain; charset=iso-8859-15
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

le Wed, Jul 21, 2004 at 03:03:15PM +0200, Erwan David a ecrit:
> la Debian permet elle de contourner le fait que le C soit monotache,en
> faisant tourner un programme en C qui lance un binaire (par la command e
> system() ) tout en continuant son execution (sans attendre la fin du
> binaire lancé).

Oui. Mais visiblement tu as besoin d'apprendre la programmation
Unix. Pour ça je te conseille
"La programmation sous Unix"



Un autre point de depart, plus facilement "disponible"
http://www.advancedlinuxprogramming.com/
Avec en particulier le chapitre 3:
http://www.advancedlinuxprogramming.com/alp-folder/alp-ch03-processes.pdf
qui traite dans le desordre de system(), fork() et wait()... et qui semble
etre pile-poil ce que tu cherches.

Tus
--
look 'ma a FAQ:
http://wiki.debian.net/?DebianFrench



--yrj/dFKFPuw6o+aM
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFA/m2A/mY6lUi5I3oRAhsnAKCwLKLz7NTN3b5+gqovwrgsVzFuzgCgvNxe
FvCA/HDj5UylF+ICUl7SOJM =vLGg
-----END PGP SIGNATURE-----

--yrj/dFKFPuw6o+aM--


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Frederic Bothamy
* Erwan David [2004-07-21 15:03] :

[...]

Oui. Mais visiblement tu as besoin d'apprendre la programmation
Unix. Pour ça je te conseille
"La programmation sous Unix" de Jean-Marie Rifflet, ce fut chez
Edisciences puis interEditions, je ne connais pas l'éditeur actuel.



Il est disponible chez Dunod maintenant sous le nom "UNIX Programmation
et communication"
(http://www.dunod.com/pages/ouvrages/ficheouvrage.asp?idG966).


Fred

--
Comment poser les questions de manière intelligente ?
http://www.gnurou.org/documents/smart-questions-fr.html
Comment signaler efficacement un bug ?
http://www.chiark.greenend.org.uk/~sgtatham/bugs-fr.html


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Erwan David
Le Wed 21/07/2004, Frederic Bothamy disait
* Erwan David [2004-07-21 15:03] :

[...]

> Oui. Mais visiblement tu as besoin d'apprendre la programmation
> Unix. Pour ça je te conseille
> "La programmation sous Unix" de Jean-Marie Rifflet, ce fut chez
> Edisciences puis interEditions, je ne connais pas l'éditeur actuel.

Il est disponible chez Dunod maintenant sous le nom "UNIX Programmation
et communication"
(http://www.dunod.com/pages/ouvrages/ficheouvrage.asp?idG966).



Les 2 tomes (le dernier étant "la communication sous Unix") ont donc du
être réunis en un seul

--
Erwan


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Yves Rutschle
On Wed, Jul 21, 2004 at 04:51:48PM +0200, christo.leroy wrote:
voila, je viens de poser la question sur un forum de programmation en c
et on me renvoie ici, donc,



Ah? Mauvais forum, changer forum (c'est une question de
programation Unix de *base*).

la Debian permet elle cela ?



Tout Unix le fait.

on parle de la fonction fork() ?



Oui. Qqch du genre:

if ( ! fork() ) {
system("trucmuch");
exit( 0 );
}

Je te conseille les mans de fork(2) et execve(2) (system(3)
n'étant pas la meilleure solution dans ce cas: avec
system(), le process père va attendre que le fils termine
avant de se tuer lui-même. Avec exec, le processur père se
transforme en le process fils.)

Y. - while(1){fork()}


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
fra-duf-no-spam
Le 12620ième jour après Epoch,
christo leroy écrivait:

bonjour,

voila, je viens de poser la question sur un forum de programmation en
c et on me renvoie ici, donc,
je suis en train de faire un programme en c qui va tourner sur debian,
et qui lance un binaire par une commande : systeme(binaire);

le langage c etant monotache ( c'est la reponse qu'on m'a faite sur le
forum c), le programme stoppe son execution tant que le binaire lancé
par system(...) n'a pas terminé son execution.



Commence par changer de forum C ... ;)

et on peut faire en sorte que le programme lance le binaire, et
continue sans s'inquieter de savoir s'il est fini ou pas.
on me dit que la solution est dans un appel au systeme d'exploitation
( DEBIAN ), et c'est là que j'ai besoin de vous.
la Debian permet elle cela ?
on parle de la fonction fork() ?



C'est pas spécifique à Debian, et Debian n'est pas un système
d'exploitation mais une distribution particulière du système
GNU/Linux.

La solution est effectivement de passer par fork(), qui est un appel
système. Tu peux voir le fork() en oeuvre avec le shell: Tu lances une
commande, et tu ne récupères le prompt qu'une fois la commande
terminée. Si tu fais suivre ta commande du caractère '&', alors il y a
fork(), et tu as le prompt tout de suite après.

Pour info, ce n'est pas un langage qui est mono ou multi-tâches. C'est
un système d'exploitation qui permet ou non de faire ça.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Manuel VACELET
François TOURDE wrote:
Pour info, ce n'est pas un langage qui est mono ou multi-tâches. C'est
un système d'exploitation qui permet ou non de faire ça.



Et une application qui, si le langage le permet, exploite cette capacité.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2