0

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

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

文件结构是它在每一行中都有单独的路径。我要做的就是/my/path1多次搜索上述文件中是否存在字符串或任何其他内容

我可以想到2种方法。

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

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

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

4

2 回答 2

1

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

于 2012-02-09T10:21:39.583 回答
0

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

于 2012-02-09T10:21:53.547 回答