mirror of https://gitee.com/Nocallback/glibc.git
Browse Source
* io/pipe2.c: Likewise. * sysdeps/unix/sysv/linux/kernel-features.h: Define __ASSUME_PIPE2 instead of __ASSUME_PACCEPT. * include/unistd.h: Declare __have_pipe2. * libio/iopopen.c: Implement "e" flag. * libio/Makefile (tests): Add tst-popen1. * libio/tst-popen1.c: New file.cvs/glibc-2_9-branch
8 changed files with 165 additions and 27 deletions
@ -0,0 +1,49 @@ |
|||
#include <fcntl.h> |
|||
#include <stdio.h> |
|||
|
|||
static int |
|||
do_test (void) |
|||
{ |
|||
int res = 0; |
|||
|
|||
FILE *fp = popen ("echo hello", "r"); |
|||
if (fp == NULL) |
|||
{ |
|||
puts ("first popen failed"); |
|||
res = 1; |
|||
} |
|||
else |
|||
{ |
|||
int fd = fileno (fp); |
|||
if (fcntl (fd, F_GETFD) == FD_CLOEXEC) |
|||
{ |
|||
puts ("first popen(\"r\") set FD_CLOEXEC"); |
|||
res = 1; |
|||
} |
|||
|
|||
fclose (fp); |
|||
} |
|||
|
|||
fp = popen ("echo hello", "re"); |
|||
if (fp == NULL) |
|||
{ |
|||
puts ("second popen failed"); |
|||
res = 1; |
|||
} |
|||
else |
|||
{ |
|||
int fd = fileno (fp); |
|||
if (fcntl (fd, F_GETFD) != FD_CLOEXEC) |
|||
{ |
|||
puts ("second popen(\"r\") did not set FD_CLOEXEC"); |
|||
res = 1; |
|||
} |
|||
|
|||
fclose (fp); |
|||
} |
|||
|
|||
return res; |
|||
} |
|||
|
|||
#define TEST_FUNCTION do_test () |
|||
#include "../test-skeleton.c" |
|||
Loading…
Reference in new issue