我有一个文件路径名的文件:
/my/path1
/my/path11
/my/path12
/my/path13
文件结构是每行都有单独的路径。我想做的就是多次在上面的文件中搜索字符串/my/path1
的存在
我能想到2种方法。
每次逐行获取文件内容,然后搜索字符串。优点是文件可以是anysize,我不需要担心缓冲区溢出。
将内容加载到缓冲区并使用缓冲区进行搜索。但由于我无法控制文件大小,所以我应该谨慎。
最好的方法是什么?我在unix工作。 C中是否有可以用于此目的的内置库命令?或者如何在C代码中使用awk
完成相同的任务。
答案 0 :(得分:1)
如果你使用stdio,它会为你做缓冲。您可以使用函数setvbuf来更改其操作,以缓冲多行。 getline
可以用来逐行检查。
答案 1 :(得分:0)
我认为在内存中加载所有文件并不是一个好主意。我猜,使用fgets
和strcmp
是最好的方法。