当前位置: 技术问答>linux和unix
过滤程序问题
来源: 互联网 发布时间:2016-12-29
本文导语: 1.c /***********************************************************/ /* 用popen向分页程序传送文件 */ /***********************************************************/ #include #include #include #include #include #define MAXLINE 1024 #define PAGER "${PAGER:-more}" ...
1.c
2.c
程序运行结果:
[root@localhost work1]# gcc 2.c -o 2
[root@localhost work1]# ./2
WWWWWF
wwwwwf
SDFfdg
sdffdg
[root@localhost work1]# gcc 1.c -o 1
[root@localhost work1]# ./1
prompt >ELFprompt >prompt >prompt >prompt >��*�prompt >prompt >prompt >
prompt >prompt >
[root@localhost work1]#
怎么回事啊?这是??
/***********************************************************/
/*
用popen向分页程序传送文件
*/
/***********************************************************/
#include
#include
#include
#include
#include
#define MAXLINE 1024
#define PAGER "${PAGER:-more}"
int main()
{
char line[MAXLINE];
FILE *fpin;
if ((fpin = fopen("1", "r")) == NULL)
{
printf("fopen error!n");
}
while (1)
{
fputs("prompt >", stdout);
fflush(stdout);
if (fgets(line, MAXLINE, fpin) == NULL)
{
break;
}
if (fputs(line,stdout) == EOF)
{
printf("fputs error!n");
}
}
if (pclose(fpin) == -1)
{
printf("pclose error!n");
}
putchar('n');
return 0;
}
2.c
/***********************************************************/
/*
大写转小写程序
*/
/***********************************************************/
#include
#include
#include
#include
int main()
{
int c;
while ((c = getchar()) != EOF)
{
if (isupper(c))
{
c = tolower(c);
}
if (putchar(c) == EOF)
{
printf("putschar error!n");
}
if (c == 'n')
{
fflush(stdout);
}
}
}
程序运行结果:
[root@localhost work1]# gcc 2.c -o 2
[root@localhost work1]# ./2
WWWWWF
wwwwwf
SDFfdg
sdffdg
[root@localhost work1]# gcc 1.c -o 1
[root@localhost work1]# ./1
prompt >ELFprompt >prompt >prompt >prompt >��*�prompt >prompt >prompt >
prompt >prompt >
[root@localhost work1]#
怎么回事啊?这是??
|
fopen ?
应该是popen吧
应该是popen吧
|
你的程序没有问题,只是你用的参数不对而已。
你需要新建一个文件 test,里面写入"miao",
把
改为
然后运行你的程序gcc 1.c -o 1
屏幕上输出你文件里面的内容:
[m@sh_build_srv test]$ ./a.out
prompt >miao
prompt >
此程序的原型是 《UNIX环境高级编程》的15.3节 popen函数和pclose函数
你需要新建一个文件 test,里面写入"miao",
把
if ((fpin = fopen("1", "r")) == NULL)
改为
if ((fpin = fopen("test", "r")) == NULL)
然后运行你的程序gcc 1.c -o 1
屏幕上输出你文件里面的内容:
[m@sh_build_srv test]$ ./a.out
prompt >miao
prompt >
此程序的原型是 《UNIX环境高级编程》的15.3节 popen函数和pclose函数