Rechercher : dans
Par :

[c++] execl() / fermer un processus

Dernière réponse le 4 nov 2009 à 16:27:34 Flow31-, le 3 nov 2009 à 13:21:19 
 Signaler ce message aux modérateurs

Bonjour à tous !

j'ai deux trois questions de c++ :

j'utilise la fonction execl() pour ouvrir un programme : pas de problème, sauf qu'il me ferme l'ancien.
Comment faire pour que execl() ouvre le programme dans une autre fenêtre pour que celui-ci continue ?

Et comment faire pour fermer ce programme ? car là, il devra aller dans les processus le chercher, non?

Han je galère depuis ce weekend :/

Merci !

Configuration: Windows XP
Firefox 3.0.15

Meilleures réponses pour « [c++] execl() / fermer un processus » dans :
Processus de Windows VoirVous vous demandez certainement quels sont tous ces horribles processus qui tournent quand vous ouvrez le gestionnaire des tâches... Ici, une tentative d'explication : Csrss.exe Csrss signifie Client Server Run-time Subsystem. C'est un sous...
Rthdcpl - rthdcpl.exe Voirrthdcpl - rthdcpl.exe Le processus rthdcpl.exe (rthdcpl signifiant realtek Hardware Control Panel) est un processus correspondant au panneau de contrôle des périphériques audio Realtek. Le fichier correspondant à ce processus est normalement...
Processus et PID VoirQu'est ce qu'un processus ? Un processus (process en anglais) est une séquence d'instructions (en langage machine, c'est-à-dire le binaire) chargée en mémoire (RAM) qui s'exécutent par le processeur. Un processus a une notion séquentielle dans le...

1

loupius, le 3 nov 2009 à 13:59:22

Les fonctions de type 'exec' (qui ne sont pas ISO) ont pour but de remplacer le programme existant par un autre; donc si l'on veut que le programme existant se poursuive il faut choisir une autre fonction.
Dès lors, il y a deux solutions:
- 'system' qui permet de lancer un autre programme, mais on attend alors la fin de ce programme pour poursuivre le programme principal,
- 'fork' qui permet de lancer un autre processus dans lequel on pourra alors lancer un autre programme.
Je ne parle pas des 'threads' qui ne sont pas une bonne solution à ce problème.
Bonne continuation.

Répondre à loupius

2

Flow31-, le 3 nov 2009 à 14:07:26

Merci.

maintenant je pourrai bien essayer de kill un processus,

je vous tiens au courant !

Répondre à Flow31-

3

Flow31-, le 4 nov 2009 à 11:57:08

Je suis tombé sur cette source :

#include <sys/types.h>

switch(fork())
{
	case -1 : perror("Probleme fork); exit(1);
	case 0: //tu es dans le fils fais ce que tu veux
	execl ("C:\\Documents and Settings\\florian\\Mes documents\\lossbot\\bin\\Debug\\intro.exe",0);
	exit(1);
	defaut :
}


et ... fork was not declared in this scope

J'utilise Codeblocks et je cherche de l'aide pour la déclarer...Merci

Répondre à Flow31-

4

Char Snipeur, le 4 nov 2009 à 12:05:37

Salut.
sous windows, utilise spawn à la place de exec. Regarde les doc sur MSDN.
Sous Linux fork() doit exister, il faut trouver où.
Sous Mac, HP, SUN, BSD etc. Je ne sais pas. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur

8

Fred, le 4 nov 2009 à 14:52:32

Non, sous Windows, on utilise depuis 20 ans l'api Win32 Kernel, jamais spawn()

Répondre à Fred

10

 Char Snipeur, le 4 nov 2009 à 16:27:34

Pourquoi laisser la fonction alors si il ne faut pas l'utiliser ??? Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur

5

loupius, le 4 nov 2009 à 12:36:03

Ah oui, sous Windows, 'fork' n'existe pas.
Toutefois dans l'API tu dois avoir ces deux fonctions: CreateProcess et CreateThread.
Je n'en sais pas plus.

Répondre à loupius

6

Flow31-, le 4 nov 2009 à 14:14:04

J'utilise spawnlp() (meme si je suis pas au point avec les options de spawn() )

une idée pour kill un processus ?!

Répondre à Flow31-

7

Char Snipeur, le 4 nov 2009 à 14:41:50

Avec spawn tu doit avoir le numéro de processus. Après il doit bien exister une fonction. Cherche dans le MSDN, je ne connais pas. Sous Linux il y a kill() dans signal.h. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur