求助:编译好的more命令怎么在linux上执行

sh/bash/dash/ksh/zsh等Shell脚本
回复
kobemiller
帖子: 2
注册时间: 2013-05-16 11:20
系统: win8

求助:编译好的more命令怎么在linux上执行

#1

帖子 kobemiller » 2013-08-07 11:46

编译好的一个more命令,但是不知道怎么在linux上实现我编的命令,望解答:
/* more01.c - version 0.1 of more
* read and print 24 lines then pause for a few special commands
*/
#include <stdio.h>
#include <stdlib.h>
#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 line, then call see_more() for further instructions
*/
{
char line[LINELEN];
int num_of_lines = 0;
int see_more(), reply;

while ( fgets( line, LINELEN, fp))
{
if( num_of_lines == PAGELEN )
{
reply = see_more();
if (reply == 0 )
break;
num_of_lines -= reply;
}
if ( fputs( line, stdout ) == EOF )
exit(1);
num_of_lines++;
}
}
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("\033[7m more? \033[m");
while ( (c = getchar() ) != EOF )
{
if ( c == 'q') return 0;
if ( c == ' ') return PAGELEN;
if ( c == ' \n') return 1;
}
return 0;
}
按照书上的提示是:
cc more01.c -o more01
more01 more01.c
这个我试过了,不行
网上还有种说法是:
cd 到当前目录
./more01
这个我也试了,还是不行
这是我在终端上输入的情况:
root@ubuntu:~/Desktop# gcc linux_more_1.c -o linux_more_1
linux_more_1.c: In function ‘see_more’:
linux_more_1.c:64:13: warning: multi-character character constant [-Wmultichar]
root@ubuntu:~/Desktop# ./linux_more_1
z^Z
[1]+ Stopped ./linux_more_1
root@ubuntu:~/Desktop# linux_more_1 linux_more_1.c
linux_more_1: command not found
root@ubuntu:~/Desktop# ./linux_more_1
linux_more_1 linux_more_1.c
linux_more_1 linux_more_1.c
头像
zhw2101024
帖子: 1849
注册时间: 2009-03-28 16:10
系统: Arch debian win7
联系:

Re: 求助:编译好的more命令怎么在linux上执行

#2

帖子 zhw2101024 » 2013-08-07 12:11

想知道是哪一年的哪本书上的例子?
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 求助:编译好的more命令怎么在linux上执行

#3

帖子 YeLee » 2013-08-07 12:18

[diff]
--- a/more.c.
+++ b/more.c
@@ -61,7 +61,7 @@
{
if ( c == 'q') return 0;
if ( c == ' ') return PAGELEN;
- if ( c == ' \n') return 1;
+ if ( c == '\n') return 1;
}
return 0;
}
[/diff]
警告先检查一下。 :em01 :em01 :em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 求助:编译好的more命令怎么在linux上执行

#4

帖子 YeLee » 2013-08-07 12:23

至于怎么使用,那不都是用户的事情吗?开发者这不是自己都有代码了吗? :em20
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
回复