我在完成的任务是,要生成一个帖子中,图像文件的链接地址。
这需要知道当前文件的位置。
我的问题:
1、读取的文件,是不是作为临时的镜像文件在操作,所以才会出现操作的函数,很多都
以map_开头? 这种临时的镜像文件,和普通文件操作有什么不同?(好像至少不是按照
fopen, fread, fwrite之类的在操作,而是按照内存地址直接操作,是这样的吗?)
2、文件的位置,似乎可以通过下面的结构体来获得,但是我获得的数据不对
struct MemMoreLines {
char *ptr;
int size;
char *line[100];
char ty[100]; /* 0: 普通, 有回车; 1: 普通, 无回车; 2: 引文, 有
回车; 3: 引文, 无回车 */
int len[100];
int s[100];
int start; /* this->line[start%100]是检索的行号最小的行,行
号为 start */
int num; /* 共检索了row到row+num-1这么多行 */
int curr_line; /* 当前游标位置 */
char *curr; /* 当前游标的行 */
char currty;
int currlen;
int total;
};
这个结构体存在于more.c这个函数
这个结构体中的变量,是什么含义,怎么可以获得文件中,已经读取了多少字节的信息?
我们读帖子的时候,每次下面显示的如“下面还有喔 (18%) 第(1-23)行”,是这样计算的
l.line[last_line % 100] - ptr + l.s[last_line % 100]
其中l是struct MemMoreLines类型的变量。
我修改之后的链接地址,可以在实验站上面看到。
去看Picture版面。但是后面的随机数还是不对。
--
FROM 202.117.27.43