2 fonctions en mm temps en c++

Résolu
lolokiller91 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   -  
tuxun Messages postés 357 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je voudrai créer une fonction qui me permettent de quitter la boucle for que j'ai créer mais sans que cette fonction n'empeche pas la boucle for de continuer dee fonctionner.

Merci a toute aide conseil ou lien hépertexte. :-I
A voir également:

7 réponses

tuxun Messages postés 357 Date d'inscription   Statut Membre Dernière intervention   34
 
Alors dans le principe cela consiste a créer un sous processus avec fork()

Il veut ceci:
(pseudo-code, le vrai est un peu rouillé)
for ( )
{
while(kekchose)
fork(tachenonbloquante();) //s'ecute en tachhe de fonds Pfiooou va falloir que j'me remmete
}

http://www.commentcamarche.net/faq/sujet 10611 que fait un fork
//en bon C cette fois, normalement
ceci t'aidera aussi:
switch(fork())
{
case -1 : perror("Probleme fork); exit(1);break;
case 0: //tu es dans le fils fais ce que tu veuxexit(1);break;
default : /*tu es dans le pere fait ce que tu veux*/ break;
}

http://gd.tuwien.ac.at/languages/c/programming-dmarshall/section2_22_22.html

Cdt,
-Tuxun- tuxun.the.free.linuxian@gmail.com
1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Tu pourrais donner un exemple ? Car j'ai pas tout compris.
0
lolokiller91 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   5
 
Par exemple:

for (int m = 0 ; ; m++)
{
result = v-m;

if (result==0)
cout << "attention!";

if (result <= -1)
{cout << "Stop!";
break;}

Sleep(10000); // Sleep(nombre) attendre le temps en millisecondes entre parenteses
cout << "Voulez-vous arrêter la boucle ?";

getch() ;

//il faudrait que ca ne bloque pas le programme

if (getch()==1)
break; }

//getch() signifie attendre que l'on appuie sur une touche

// si ya un équivalent qui ne bloque pas la boucle mais qui attend seulement kon apui sur une touche

Exemple qui se rapproche de mon programme

(C) Inc Lolokiller91 . 2009 . All rights reserved

LOL

Ps; Désolé pour les faute d'orthographe :| J'ai écrit le prigramme à la vavite
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > lolokiller91 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
si ya un équivalent qui ne bloque pas la boucle mais qui attend seulement kon apui sur une touche
Si le programme attend qu'on appuie sur une touche alors le programme n'ira pas plus loin.
Par contre, si tu veux intercepter une touche pendant le déroulement de la boucle, tu peux utiliser kbhit() de conio.h.
Par exemple :
if(kbhit()) { //on entre uniquement si l'utilisateur a pressé des touches, sinon on continue
    char lettre=getchar(); // on récupère la touche stockée dans le buffer.
}

Cdlt
0
lolokiller91 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   5
 
help
0
lolokiller91 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   5 > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
#include <iostream>
#include <windows.h>
#include <conio.h>

using namespace std;
typedef unsigned short int usi;

int main()
{
getch();
usi m = 0;
usi h = 0;

for(;;)
{
if (kbhit())
{
break;
cout<<"Salut";
}
system ("cls");
if (m<10)
cout << "0"<<h<<"H0"<<m<<"\n\n";
else
cout << "0"<<h<<"H"<<m<<"\n\n";
m++;
if (m>59)
{
m=0;
h++;
}

}

system("PAUSE");
return EXIT_SUCCESS;
}

Voici mon programme .
J'ai un problème maintenant c qu'il me met un message d'erreur que voici:
[Linker error] undefined reference to `__cpu_features_init'
ld returned 1 exit status


Help!!!!!!!!!
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > lolokiller91 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention  
 
Il faut éviter les mélanges d'en-têtes.
Enlève le include stdlib.h. En C++, on utilise cstdlib (que tu as déjà inclus).

Sinon pour l'erreur, cela peut venir du fait d'un mauvais mélange de bibliothèques. Du genre installer Dev-Cpp et Code::Blocks ou MingW ou autre.
Est-ce le cas ?

Cdlt
0
tuxun Messages postés 357 Date d'inscription   Statut Membre Dernière intervention   34
 
re:tuxun
et je suis tombé la-dessus 5mn après:
http://kafka.fr.free.fr/docs/prog_syst_linux-html/html/slide_35.html
T'a vu y a un getpid!!!

Je connaissais pas mais cela va m'être très utile pour mon "sur-noyau" Linux (vtty/shell/framework)
notamment pour écrire un Os virtuel par-dessus Linux (comme User Mode Linux mais pas comme Unified Modeling Language ;-) )

Salut!
-Tuxun-
0
lolokiller91 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   5
 
Le léger problème c'est que je n'ai pas Linux et ne connais pas le C. J'ai Windows Xp et j'utilise seulement le C++. Alors y a-t-il un équivalent C++ pour Windows.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jamian
 
Salut,

Il y a une compatibilité ascendante entre le C et le C++. Tu peux donc utiliser ceci en C++. Fork n'est pas spécifique à Linux et tu peux l'utiliser aussi sous windows.
0
lolokiller91 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   5
 
Il est pas reconnu
c koi la bibliotheque que t''utilise pour le fr fonctionner
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Il y a une compatibilité ascendante entre le C et le C++
Vrai au début. Mais puisque les deux normes ne sont pas les mêmes, ce n'est pas compatible bien que beaucoup de choses le soient en pratique.

Fork n'est pas spécifique à Linux et tu peux l'utiliser aussi sous windows.
Spécifique à Linux non puisque fork est posix. Mais tu ne peux pas l'utiliser sur Windows à moins de l'émuler. Mais c'est de la bricole. En pratique sous windows, on utilise CreateProcess() ou CreateThread (pour la création de threads).
0
tuxun Messages postés 357 Date d'inscription   Statut Membre Dernière intervention   34
 
re: Lolokiller91
la lib c'est <unistd.h>

Jasmian a raison le C++ est une façon différentes d'organiser du C (avec pas mal de rajout c'est vrai)
mais il y a donc compatiblité...

Jasmian: Pas toujours, pas vrai? jai eu un probleme avec des void* machin()...

Salut content d'avoir pu aider!
0
tuxun Messages postés 357 Date d'inscription   Statut Membre Dernière intervention   34
 
entre parenthese, la boucle for se met en pause a chaque sleep!
ce n'est donc pas ce que tu voulais ;)
0