jakill 下面程序编译成可执行文件jakill ,放在/usr/bin/目录下,以供popen调用
#include <fcntl.h>
#include <stdio.h>
#include "apue.h"
#include <errno.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <unistd.h>
#include <stropts.h>
#include <sys/mman.h>
#define PAGER "${PAGER:-more}"
int
main(int argc , char *argv[])
{
int c;
while((c=getchar())!=EOF)
{
if(isupper(c))
c=tolower(c);
if(putchar(c)==EOF)
err_sys("output erro");
if(c=='\n')
fflush(stdout);
}
}
下面程序编译成a.out
直接调用
#include <sys/types.h>
#include <unistd.h>
#include <stropts.h>
#include <sys/mman.h>
#define PAGER "${PAGER:-more}"
int
main(int argc , char *argv[])
{
char line[MAXLINE];
FILE *fpin;
if((fpin=popen("myuclc","r"))<0)
err_sys("popen err");
for(;;)
{
fputs("promt>",stdout);
fflush(stdout);
if(fgets(line,MAXLINE,fpin)==NULL)
break;
if(fputs(line,stdout)==EOF)
err_sys("fputs erro");
}
if(pclose(fpin)<0)
err_sys("plcose err");
exit(0);
}