Facebook采访:实施readline功能

时间:2011-11-28 19:17:36

标签: c algorithm

问题是

  

实现一个返回单行的函数char* readLine();   一个缓冲区。要读取缓冲区,可以使用函数int   read(char* buf, int len)填充buf与最多len chars和   返回填写的实际字符数。函数readLine可以   根据需要多次调用。如果没有有效数据或换行符   终止字符串可用,它必须阻止。为了阻止,它可以   使用读取功能,当它没有时,它会阻塞   什么东西填补了buf。

我不知道如何进行以及预期采用何种方法。 我无法理解面试官的期望。我只需要指导前进而不是确切的功能。

1 个答案:

答案 0 :(得分:2)

分配适当大小的缓冲区。

如果您的读缓冲区中没有字符,请读入新块。

如果读取缓冲区中的下一个字符是换行符,则返回结果缓冲区。

如果结果缓冲区已满,则会出现错误并且抱怨线条太长。

否则,将读缓冲区中的下一个字符添加到结果缓冲区中。

注意:所提问题的答案是等待发生的安全问题,以及潜在的内存泄漏。

相关问题