在搜索文件中的行时使用哪种方法

时间:2012-02-09 10:13:24

标签: c search fileparsing file-search

我有一个文件路径名的文件:

/my/path1
/my/path11
/my/path12
/my/path13

文件结构是每行都有单独的路径。我想做的就是多次在上面的文件中搜索字符串/my/path1的存在

我能想到2种方法。

  1. 每次逐行获取文件内容,然后搜索字符串。优点是文件可以是anysize,我不需要担心缓冲区溢出。

  2. 将内容加载到缓冲区并使用缓冲区进行搜索。但由于我无法控制文件大小,所以我应该谨慎。

  3. 最好的方法是什么?我在unix工作。 C中是否有可以用于此目的的内置库命令?或者如何在C代码中使用awk完成相同的任务。

2 个答案:

答案 0 :(得分:1)

如果你使用stdio,它会为你做缓冲。您可以使用函数setvbuf来更改其操作,以缓冲多行。 getline可以用来逐行检查。

答案 1 :(得分:0)

我认为在内存中加载所有文件并不是一个好主意。我猜,使用fgetsstrcmp是最好的方法。