Linguaggio C - popen(), pclose()

NOME

popen(), pclose() - prepara I/O ed esegue processi

SINOPSI

#include <stdio.h> FILE *popen(const char *command, const char *type); int pclose(FILE *stream);

DESCRIZIONE

La funzione popen() apre un processo effettuando le operazioni seguenti:

L'argomento command della funzione popen() contiene la command-line della shell. Questo comando e' passato alla shell come argomento, ottenendo cosi' una chiamata al sistema operativo che nel caso di UNIX diventa:
/bin/sh -c command

Nella funzione popen(), l'argomento type indica il verso della direzione della 'pipe', essendo queste monodirezionali.
Quindi type specifica se il processo corrente gestisce la 'pipe' in sola lettura (type = "r") o in sola scrittura (type = "w").

La funzione popen() torna una standard I/O stream.
Scrivendo sullo stream (se aperto in scrittura) i dati vengono passati sullo standard input del comando command, mentre lo standard output del comando e' lo stesso dello standard output del processo che ha chiamato la popen() (a meno che sia stato modificato con la chiamata del comando).
Leggendo sullo stream (se aperto in input) i dati sono acquisiti dallo standard output del comando command, mentre lo standard input del comando e' lo stesso dello standard input del processo che ha chiamato la popen().

L'I/O stream ritornato da popen() deve venire chiuso necessariamente da pclose() anziche' da fclose().
La funzione pclose() attende che termini il processo avviato da popen() e ritorna lo stato di uscita del comando come viene ritornato dalla funzione wait().

VALORE DI RITORNO

La funzione popen() ritorna NULL se fallisce la chiamata a fork() o a pipe() o se non possa essere allocata memoria, altrimenti torna lo standard I/O stream.

La funzione pclose() ritorna -1 in caso di errori.

CONFORME A

POSIX.2

ESEMPIO

VEDI ANCHE

fork() pipe() system() wait() fopen() fclose() fflush()


Indice-C Indice linguaggio C
Indice librerie Indice librerie C
At Home Umberto Zappi Home Page
Indice funzioni Indice funzioni C