当前位置: 技术问答>linux和unix
《Unix/Linux编程实践教程》教材中问题。。
来源: 互联网 发布时间:2016-12-28
本文导语: 在这本书的第一章,我像书上一样写了个more01.c的程序。运行得到more01可执行文件。但是在命令行输入 ($more more01.c)并没有内容出来。为什么啊?是不是要把more文件放到哪个目录下?还是说我写错了,小弟刚入linux...
在这本书的第一章,我像书上一样写了个more01.c的程序。运行得到more01可执行文件。但是在命令行输入
($more more01.c)并没有内容出来。为什么啊?是不是要把more文件放到哪个目录下?还是说我写错了,小弟刚入linux,有很多不懂的,望大侠们指教...
($more more01.c)并没有内容出来。为什么啊?是不是要把more文件放到哪个目录下?还是说我写错了,小弟刚入linux,有很多不懂的,望大侠们指教...
/* more01.c - version 0.1 of more
* read and print 24 lines then pause for a few special commands
*/
#include
#define PAGELEN 24
#define LINELEN 512
void do_more(FILE *);
int see_more();
int main( int ac , char *av[] )
{
FILE *fp;
if ( ac == 1 )
do_more( stdin );
else
while ( --ac )
if ( (fp = fopen( *++av , "r" )) != NULL )
{
do_more( fp ) ;
fclose( fp );
}
else
exit(1);
return 0;
}
void do_more( FILE *fp )
/*
* read PAGELEN lines, then call see_more() for further instructions
*/
{
char line[LINELEN];
int num_of_lines = 0;
int see_more(), reply;
while ( fgets( line, LINELEN, fp ) ){ /* more input */
if ( num_of_lines == PAGELEN ) { /* full screen? */
reply = see_more(); /* y: ask user */
if ( reply == 0 ) /* n: done */
break;
num_of_lines -= reply; /* reset count */
}
if ( fputs( line, stdout ) == EOF ) /* show line */
exit(1); /* or die */
num_of_lines++; /* count it */
}
}
int see_more()
/*
* print message, wait for response, return # of lines to advance
* q means no, space means yes, CR means one line
*/
{
int c;
printf("33[7m more? 33[m"); /* reverse on a vt100 */
while( (c=getchar()) != EOF ) /* get response */
{
if ( c == 'q' ) /* q -> N */
return 0;
if ( c == ' ' ) /* ' ' => next page */
return PAGELEN; /* how many to show */
if ( c == 'n' ) /* Enter key => 1 line */
return 1;
}
return 0;
}
|
步骤:
1 gcc more01.c -o more01
2 ./more01 more01.c
1 gcc more01.c -o more01
2 ./more01 more01.c
|
编程之前先把linux的基本命令熟悉熟悉。。。。。。。。。。。。
|
在命令行输入($more more01.c)并没有内容出来
这个不会吧?more是系统命令,可以查看more01.c文件内容的啊
这个不会吧?more是系统命令,可以查看more01.c文件内容的啊