当前位置: 技术问答>linux和unix
关于调用fgets的问题
来源: 互联网 发布时间:2016-10-02
本文导语: 各位好,我遇到一个十分令我费解的问题。我用libcurl库与某个服务器进行HTTP通讯, 将服务器的响应信息写到一个文件里,然后调用fopen和fgets函数来读取这个文件的内容并解析, 可是调用fgets读到的内容...
各位好,我遇到一个十分令我费解的问题。我用libcurl库与某个服务器进行HTTP通讯, 将服务器的响应信息写到一个文件里,然后调用fopen和fgets函数来读取这个文件的内容并解析, 可是调用fgets读到的内容一直为空。 如果在调用fopen和fgets之前调用一下fflush函数将文件的内容写入硬盘的话,这样调用fgets就可以读到内容了。
在调用fopen和fgets之前先将文件写入磁盘固然是一种解决问题的方法, 可是这样的话效率太低了,因为操作一次IO是很费时间的,各位有什么好的建议啊?用什么方法可以解析这个文件但又不将文件写入硬盘?
在调用fopen和fgets之前先将文件写入磁盘固然是一种解决问题的方法, 可是这样的话效率太低了,因为操作一次IO是很费时间的,各位有什么好的建议啊?用什么方法可以解析这个文件但又不将文件写入硬盘?
|
简单测试了一下,果然发现一个bug
char *my_fgets(char *line_buf, int line_len, char **src_buf)
{
int i;
char *p = *src_buf;
line_buf[0] = '';
if (*p == '')
return NULL;
for (i=0; *p && *p != 'n'; i++, p++ )
if (i