Back to index

glibc  2.9
Defines | Functions
tst-popen1.c File Reference
#include <fcntl.h>
#include <stdio.h>
#include "../test-skeleton.c"

Go to the source code of this file.

Defines

#define TEST_FUNCTION   do_test ()

Functions

static int do_test (void)

Define Documentation

#define TEST_FUNCTION   do_test ()

Definition at line 48 of file tst-popen1.c.


Function Documentation

static int do_test ( void  ) [static]

Definition at line 5 of file tst-popen1.c.

{
  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;
}

Here is the call graph for this function: