48 lines
1.3 KiB
C
Executable File
48 lines
1.3 KiB
C
Executable File
/**
|
|
Auteur : RC (inspiration MS)
|
|
Squelette du programme popen_somme
|
|
Cf. algorithme dans la fonction main
|
|
|
|
NB : La fonction popen() engendre un processus en créant un tube
|
|
(pipe), executant un fork(), et en invoquant le shell avec la
|
|
commande donnée dans l'argument no 1.
|
|
Comme un tube est unidirectionnel par definition,
|
|
l'argument no 2 doit indiquer seulement une lecture
|
|
ou une écriture, et non pas les deux.
|
|
Le flux correspondant sera donc ouvert en lecture seule
|
|
ou écriture seule.
|
|
Cf. man ...
|
|
*/
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <assert.h>
|
|
#include <errno.h>
|
|
#define MAX_COMMANDE 100
|
|
|
|
int main (int argc, char *argv[])
|
|
{
|
|
assert (argc == 3);
|
|
/// Syntaxe : ./a.out <x> <n>
|
|
/// Exemple : ./a.out 2 10
|
|
/// Resultat : 2047
|
|
int x;
|
|
int n;
|
|
FILE *fPin;
|
|
char commande[MAX_COMMANDE];
|
|
int somme;
|
|
int l;
|
|
char unResultat[10];
|
|
|
|
/// "n" boucles "for" avec le compteur l
|
|
{
|
|
/// Preparation de la commande pour popen(avec sprintf)
|
|
/// Creation du fils et du pipeline et test d'erreur...
|
|
/// Avec fscanf, lecture de la valeur x^l produite par ...
|
|
/// Fermeture avec pclose
|
|
/// Incrementation de la somme
|
|
}
|
|
/// affichage du resultat
|
|
return 0;
|
|
}
|
|
|