#include <stdio.h> /* printf */
#include <stdlib.h> /* system, NULL, EXIT_FAILURE */
void write_data (FILE * stream)
{
int i;
for (i = 0; i < 100; i++)
{
fprintf (stderr
, "Output to stream failed.\n"); }
}
int main ()
{
FILE *output;
char* pPath;
output = popen("uname -a", "w");
write_data (output);
output = popen ("ls", "w");
write_data (output);
output = popen ("cat /etc/passwd", "w");
write_data (output);
if (pPath!=NULL)
if (pPath!=NULL)
if (pPath!=NULL)
if (pPath!=NULL)
printf ("$SHELL: %s\n",pPath
); pPath
= getenv ("REMOTEHOST"); if (pPath!=NULL)
printf ("$REMOTEHOST: %s\n",pPath
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+ICAgICAgLyogcHJpbnRmICovCiNpbmNsdWRlIDxzdGRsaWIuaD4gICAgIC8qIHN5c3RlbSwgTlVMTCwgRVhJVF9GQUlMVVJFICovCgp2b2lkIHdyaXRlX2RhdGEgKEZJTEUgKiBzdHJlYW0pCnsKICBpbnQgaTsKICBmb3IgKGkgPSAwOyBpIDwgMTAwOyBpKyspCiAgICBmcHJpbnRmIChzdHJlYW0sICIlZFxuIiwgaSk7CiAgaWYgKGZlcnJvciAoc3RyZWFtKSkKICAgIHsKICAgICAgZnByaW50ZiAoc3RkZXJyLCAiT3V0cHV0IHRvIHN0cmVhbSBmYWlsZWQuXG4iKTsKICAgICAgZXhpdCAoRVhJVF9GQUlMVVJFKTsKICAgIH0KfQoKCmludCBtYWluICgpCnsKICBGSUxFICpvdXRwdXQ7CiAgY2hhciogcFBhdGg7CgogIG91dHB1dCA9IHBvcGVuKCJ1bmFtZSAtYSIsICJ3Iik7CiAgd3JpdGVfZGF0YSAob3V0cHV0KTsKICBwcmludGYoIlxuXG4iKTsKICBvdXRwdXQgPSBwb3BlbiAoImxzIiwgInciKTsKICB3cml0ZV9kYXRhIChvdXRwdXQpOwogIHByaW50ZigiXG5cbiIpOwogIG91dHB1dCA9IHBvcGVuICgiY2F0IC9ldGMvcGFzc3dkIiwgInciKTsKICB3cml0ZV9kYXRhIChvdXRwdXQpOwogIHByaW50ZigiXG5cbiIpOwogIHBQYXRoID0gZ2V0ZW52ICgiUEFUSCIpOwogIGlmIChwUGF0aCE9TlVMTCkKICAgIHByaW50ZiAoIiRQQVRIOiAlc1xuIixwUGF0aCk7CiAgcFBhdGggPSBnZXRlbnYgKCJIT01FIik7CiAgaWYgKHBQYXRoIT1OVUxMKQogICAgcHJpbnRmICgiJEhPTUU6ICVzXG4iLHBQYXRoKTsKICBwUGF0aCA9IGdldGVudiAoIkhPU1QiKTsKICBpZiAocFBhdGghPU5VTEwpCiAgICBwcmludGYgKCIkSE9TVDogJXNcbiIscFBhdGgpOwogIHBQYXRoID0gZ2V0ZW52ICgiU0hFTEwiKTsKICBpZiAocFBhdGghPU5VTEwpCiAgICBwcmludGYgKCIkU0hFTEw6ICVzXG4iLHBQYXRoKTsKICBwUGF0aCA9IGdldGVudiAoIlJFTU9URUhPU1QiKTsKICBpZiAocFBhdGghPU5VTEwpCiAgICBwcmludGYgKCIkUkVNT1RFSE9TVDogJXNcbiIscFBhdGgpOwogIHJldHVybiAwOwp9