c语言-求助各位大神,是LINUX下关于tail实现的

问题描述

求助各位大神,是LINUX下关于tail实现的

#include
#include
#include
#include
#define MAXLINE 50
int cur_rec;
int cur_nums;
int file_fd = -1;
char buf[MAXLINE ];
void file_open1(char *);
char *file_next(void);
void file_close1(int);
void swift(char *);
int main(int argc,char *argv[])
{
int n=0;
char c,*p;
int i =0;
char tail[1024];
tail[0] = '';
if(argc != 2){
fprintf(stderr,"hey,br honstn");
exit(1);
}
file_open1(argv[1]);
while(n <= 10){
p = file_next();
if(p == NULL)
break;
while((c = *--p) != ''){
if((tail[i++] = c)=='n')
n++;
if(n > 10)
break;
}
}
file_close1(file_fd);
tail[i] = '';
swift[tail];
fprintf(stdout,"ok,although tough,i get it %s n",tail);
return 0;
}

void file_open1(char *name)
{
file_fd = open(name,O_RDONLY);
cur_rec = cur_nums = 0;
}

char *file_next(void)
{
int reload();
char *p;
if(file_fd = -1)
return NULL;
if(cur_rec = 0 && reload() == 0)
return NULL;
p = &buf[cur_rec * MAXLINE];
cur_rec--;
return p;
}

int reload(void)
{
int amt_read;
lseek(file_fd,-NRECS*MAXLINE,SEEK_END);
amt_read = read(file_fd,buf,MAXLINE);
cur_rec = cur_nums =MAXLINE;
return cur_nums;
}

void file_close1(int fd)
{
if(fd != -1)
close(fd);
}

void swift(char * s)
{
int min = 0;
char c;
int max = sizeof(s);
while(min <= max){
c = s[min];
s[max] = c;
s[min] = s[max];
max--;
min++;
}
}
编译了说是swift[tail]中数组下标不是整数,搞了半天也没弄成,求解答,谢谢了

解决方案

#include
#include
#include
#include
#define MAXLINE 10
int cur_rec;
int cur_nums;
int file_fd = -1;
char buf[MAXLINE ];
void file_open1(char *);
char *file_next(void);
void file_close1(int);
void swift(char *,int);
int main(int argc,char *argv[])
{
int n=0;
char c,*p;
int i =0;
char tail[1024];
tail[0] = '';
if(argc != 2){
fprintf(stderr,"hey,br honstn");
exit(1);
}
file_open1(argv[1]);
if(file_fd == -1)
fprintf(stderr,"can,t open");
while(n <= 10){
p = file_next();
if(p == NULL)
break;
while((c = *--p) != ''){
if((tail[i++] = c)=='n')
n++;
if(n > 10)
break;
}
}
file_close1(file_fd);
tail[i] = '';
swift(tail,i-1);
fprintf(stdout,"ok,although tough,i get it %s 45 n",tail);
return 0;
}

void file_open1(char *name)
{
file_fd = open(name,O_RDONLY);
lseek(file_fd,-MAXLINE,SEEK_END);
cur_rec = cur_nums = 0;
}

char *file_next(void)
{
int reload();
char *p;
if(file_fd = -1)
return NULL;
if(cur_rec == 0 && reload() == 0)
return NULL;
p = &buf[cur_rec];
cur_rec--;
return p;
}

int reload(void)
{
int amt_read;
amt_read = read(file_fd,buf,MAXLINE);
cur_rec = cur_nums =amt_read;
lseek(file_fd,-(amt_read+MAXLINE),SEEK_CUR);
return cur_nums;
}

void file_close1(int fd)
{
if(fd != -1)
close(fd);
}

void swift(char * s,int n)
{
int min = 0;
char c;
int max = n;
while(min <= max){
c = s[min];
s[max] = c;
s[min] = s[max];
max--;
min++;
}
}

xiugaile,bianyimeicuo,kedsbuchuzhilai..

解决方案二:

敲错代码了吧,swift是个函数,怎么能接下标用作数组呢,楼上的已经给你修改过了。

时间: 2025-01-02 11:54:46

c语言-求助各位大神,是LINUX下关于tail实现的的相关文章

c语言-C语言小白请大神帮忙改一下代码,谢谢。

问题描述 C语言小白请大神帮忙改一下代码,谢谢. #include #include #include #include #include void choose();//选择函数 void shu();//猜数字函数 void paihang();//排行榜 void repaihang(int n);//更新排行榜 void replace();//初始化排行榜(没有记录时的排行榜) typedef struct { char name[10]; int score; }re; int ma

网站建设-求助各位大神用TXT下的代码另存为html的文件为什么无法运行

问题描述 求助各位大神用TXT下的代码另存为html的文件为什么无法运行 <html xmlns="http://www.w3.org/1991/xhtml"> <head> <meta http-equiv="Content-type" content="text/html;charset=utf-8"/> <title>链接<title> </head> <body

c语言-小白 求 大神 帮忙找下错误.实在是找不出来了

问题描述 小白 求 大神 帮忙找下错误.实在是找不出来了 #include #include #include int main() { int m , N , i , k , k1,k2=0 , j , temp,flag; int *p; int array[1001]; int array1[1001]; //p=array; //************************************************这个是把数组随机出来 srand(time(NULL)); sc

c语言-来个大神帮忙看下这个链表倒置哪里有问题啊 真的看傻了

问题描述 来个大神帮忙看下这个链表倒置哪里有问题啊 真的看傻了 void bear_reverse(node * front) { node *p, *c, *n; p = NULL; c = front; n = c->next; while (n != NULL) { p = c; c = n; n = c->next; if (p != NULL) { p->next = c; } } c->next = p; front = c; } 解决方案 node * reverse

语言求助-输大神看一下我写的宿舍管理系统到底出啥问题了!急,马上要交了!!!

问题描述 输大神看一下我写的宿舍管理系统到底出啥问题了!急,马上要交了!!! 原本只要一个结构体的,但我弄复杂了,求大神帮下忙!这个程序主要是输入时总会得不到正确的链表,我试了好久也没成功,都快崩溃了!简单地用DOS系统运行和其他编程软件运行结果都不同! 学生宿舍管理系统设计 功能:实现简单的学生宿舍基本信息管理,宿舍的基本信息包括楼号.房间号.面积.所容纳人数.已入住人数等,系统以文本菜单形式工作. 基本要求: 实现宿舍基本信息的录入.修改.删除. 实现宿舍信息的浏览.查询 实现安排学生入住.

新手求助C语言,求大神解答

问题描述 新手求助C语言,求大神解答 #include #include #include #include int main() { const int target; int min,max,count,guess; char c='Y'; srand(time(NULL)); while(1){ min=1; max=100; count=0; target=rand()%max+1; while(1){ guess=0; printf("输入一个数字 %d %dn",min,m

file-c语言在linux环境下进行文件复制的代码,使用时出错,求各位大神帮忙解答下

问题描述 c语言在linux环境下进行文件复制的代码,使用时出错,求各位大神帮忙解答下 #include#include#include#include#include#include#include#define BUFSIZE 4096#define COPYMODE 0644 void oops(char *char *);void *emalloc(size_t);void do_copy(char *char *);void copydir(char *char *);int isdi

c++-[zlib使用问题]如何解压zip文件!求助各位大神,救急!!!

问题描述 [zlib使用问题]如何解压zip文件!求助各位大神,救急!!! 有个项目,要实现Zip文件的解压和压缩,这几天一直在搞zlib,但是不管在Linux下还是Windows下都有问题. 1.linux下我用gcc编译,代码中就直接写了个#include "zlib.h",然后就可以用compress和uncompress函数了,可是我的问题是要用来解压Zip文件啊,并不是压缩字符串,然后就用miniZip文件夹中的zip.h和unzip.h,include到代码中,结果调用里面

求助各位大神一道程序题,用c编写

问题描述 老师要我们用c编写一个题目,我感觉好难,所以想求助各位大神.题目:用一个函数将10个职工参加计算机等级考试的信息存入结构体数组,每个人的信息包括:考号.姓名.性别.成绩.成绩分为优秀.合格.不合格三个等级.用函数实现输出每个职工的信息,用函数实现统计各个等级的人数.要用结构体,数组,函数.循环等来写编程.谢谢了! 解决方案 解决方案二:vardata=Enumerable.Range(0,10).Select(x=>new{考号=x,姓名="User"+x.ToStri