tee mais sans la sortie standard [Shell] - Programmation
Marsh Posté le 29-09-2001 à 02:52:21
et quelle est le problème de '>' dans un prog
Sinon ya toujour moyen de détourner la sortie standard en branchant le flux stdout sur un fichier...
Marsh Posté le 29-09-2001 à 12:16:05
vla le prog, il fait une sauvegarde d'un bdd mysql avec la date du jours.
Code :
|
Marsh Posté le 29-09-2001 à 13:00:50
Roswell_ a écrit a écrit : vla le prog, il fait une sauvegarde d'un bdd mysql avec la date du jours.
|
j'ai la flemme de lire ton code mais une redirection genre "ls > toto" a faire en C c'est pas si dur...
bon je connais pas tee, mais si tu veux juste mettre le ls ds le fichier toto (ls > toto) ya ca:
tab[0] = ls
tab[1] = '>'
tab[2] = toto.txt
void main(int argc, char **argv, char **env)
{
if ((pid = fork()))
redirect(tab, env);
waitpid(pid,0,0);
}
void redirect(char **tab, char **env)
{
int fd;
if ((fd = open(tab[2],...) == -1)
error;
dup2(fd, 1);
execve(tab[0], tab, env);
close(fd);
}
voila en gros...
les man a lire: dup2, pipe, fork.... pour bien tout capter...
enfin les redirections ds un programme c pas si dur..
Marsh Posté le 29-09-2001 à 23:07:57
Merci, je savais pas qu'on pouvait utiliser open() (ou plutot creat() pour moi) directement avec les pipes, ce qui m'évite de faire un processus pour l'écriture du fichier.
Marsh Posté le 29-09-2001 à 02:20:46
Bon vous voyer comment marche tee.
On fait 'ls | tee test.txt'
il met le resultat du ls dans un fichier test.txt et l'affiche à l'écran.
Moi je vousrais la même chose sans qu'il me l'affiche, je connais pas bcp linux mais ça doit exister.
Je precise que je ne veux pas utiliser l'opérateur '>' du shell. En fait c'est pour utiliser dans un prog.