.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1991, The Regents of the University of California. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH popen 3 "17 Mayo 2025" "Páginas de Manual de Linux 6.15" .SH NOMBRE popen, pclose \- flujo desde o hacia un proceso .SH BIBLIOTECA Biblioteca Estándar C (\fIlibc\fP,\ \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBFILE *popen(const char *\fP\fIorden\fP\fB, const char *\fP\fItipo\fP\fB);\fP \fBint pclose(FILE *\fP\fIflujo\fP\fB);\fP .fi .P .RS -4 Requisitos de Macros de Prueba de Características para glibc (véase \fBfeature_test_macros\fP(7)): .RE .P \fBpopen\fP(), \fBpclose\fP(): .nf _POSIX_C_SOURCE >= 2 || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .fi .SH DESCRIPCIÓN La función \fBpopen\fP() inicia un proceso creando una tubería, llamando a \fBfork\fP(2) para crear el proceso y ejecutando el intérprete de órdenes (shell). Puesto que una tubería es unidireccional por definición, el argumento \fItipo\fP sólo puede especificar lectura o escritura, pero no ambos; el flujo resultante es respctivamente de lectura o escritura exclusiva. .P El argumento \fIorden\fP es un puntero a una cadena terminada en cero que contiene una línea de orden del shell. Esta orden se pasa a \fI/bin/sh\fP precedida de la opción \fB\-c\fP; si se necesita interpretar la línea, esto lo hace el shell. .P El argumento \fItipo\fP es un puntero a una cadena terminada en cero que debe contener la letra \[aq]r\[aq] para lectura o la letra \[aq]w\[aq] para escritura. Desde glibc 2.9, este argumento puede incluir adicionalmente la letra \[aq]e\[aq], lo que activa el indicador de cierre al ejecutar (\fBFD_CLOEXEC\fP) en el descriptor de archivo subyacente; consulte la descripción del indicador \fBO_CLOEXEC\fP en \fBopen\fP(2) para conocer las razones por las que esto puede ser útil. .P El valor de retorno de \fBpopen\fP() es un flujo de E/S estándar normal en todos los aspectos, salvo que debe cerrarse con \fBpclose\fP() en lugar de \fBfclose\fP(3). Escribir en este flujo escribe en la entrada estándar de la orden; la salida estándar de la orden es la misma que la del proceso que llamó a \fBpopen\fP(), a menos que la propia orden la modifique. Por el contrario, leer desde el flujo lee la salida estándar de la orden, y la entrada estándar de la orden es la misma que la del proceso que llamó a \fBpopen\fP(). .P Tenga en cuenta que los flujos de salida \fBpopen\fP() se almacenan en búfer de bloque por defecto. .P La función \fBpclose\fP() espera que el proceso asociado termine, y devuelve el estado de salida de la orden como el devuelto por \fBwait4\fP(2). .SH "VALOR DEVUELTO" \fBpopen\fP(): en caso de éxito, devuelve un puntero a un flujo abierto que puede usarse para leer o escribir en la tubería; si las llamadas a \fBfork\fP(2) o \fBpipe\fP(2) fallan, o si la función no puede asignar memoria, se devuelve NULL. .P .\" These conditions actually give undefined results, so I commented .\" them out. .\" .I stream .\" is not associated with a "popen()ed" command, if .\".I stream .\" already "pclose()d", or if \fBpclose\fP(): en caso de éxito, devuelve el estado de salida de la orden. Si \fBwait4\fP(2) devuelve un error o se detecta algún otro error, se devuelve \-1. .P Si ocurriese un fallo, ambas funciones establecen \fIerrno\fP para indicar el error. .SH ERRORES La función \fBpopen\fP() no establece \fIerrno\fP si falla la asignación de memoria. Si la función subyacente \fBfork\fP(2) o \fBpipe\fP(2) falla, se establece \fIerrno\fP para indicar el error. Si el argumento \fItipo\fP no es válido y se detecta esta condición, \fIerrno\fP se establece en \fBEINVAL\fP. .P Si \fBpclose\fP() no puede obtener el estado del hijo, se asigna a \fIerrno\fP el valor \fBECHILD\fP. .SH ATRIBUTOS Para obtener una explicación de los términos usados en esta sección, véase \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfaz Atributo Valor T{ .na .nh \fBpopen\fP(), \fBpclose\fP() T} Seguridad del hilo Multi\-hilo seguro .TE .SH VERSIONES El valor \[aq]e\[aq] para \fItipo\fP es una extensión de Linux. .SH ESTÁNDARES POSIX.1\-2008. .SH HISTORIAL POSIX.1\-2001. .SH ADVERTENCIAS Lea atentamente las advertencias en \fBsystem\fP(3). .SH ERRORES Puesto que la entrada estándar de una orden abierta para lectura comparte su puntero de posición con el proceso que llamó a \fBpopen\fP(), si el proceso original ha hecho una lectura tamponada, la posición en la entrada de la orden puede no ser la esperada. De forma similar, la salida de una orden abierta para escritura puede resultar mezclada con la del proceso original. Esto último puede evitarse llamando a \fBfflush\fP(3) antes de a \fBpopen\fP(). .P .\" .SH HISTORY .\" A .\" .BR popen () .\" and a .\" .BR pclose () .\" function appeared in Version 7 AT&T UNIX. Un fallo en la ejecución de la shell es indistinguible de un fallo en la ejecución de la orden por parte de esa shell, o de una salida inmediata de la orden. La única pista es un estado de salida de 127. .SH "VÉASE TAMBIÉN" \fBsh\fP(1), \fBfork\fP(2), \fBpipe\fP(2), \fBwait4\fP(2), \fBfclose\fP(3), \fBfflush\fP(3), \fBfopen\fP(3), \fBstdio\fP(3), \fBsystem\fP(3) .PP .SH TRADUCCIÓN La traducción al español de esta página del manual fue creada por Gerardo Aburruzaga García , Juan Piernas y Marcos Fouces . .PP Esta traducción es documentación libre; lea la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. .PP Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a .MT debian-l10n-spanish@lists.debian.org .ME .