问题是
实现一个返回单行的函数
char* readLine();
一个缓冲区。要读取缓冲区,可以使用函数intread(char* buf, int len)
填充buf与最多len chars和 返回填写的实际字符数。函数readLine可以 根据需要多次调用。如果没有有效数据或换行符 终止字符串可用,它必须阻止。为了阻止,它可以 使用读取功能,当它没有时,它会阻塞 什么东西填补了buf。
我不知道如何进行以及预期采用何种方法。 我无法理解面试官的期望。我只需要指导前进而不是确切的功能。
答案 0 :(得分:2)
分配适当大小的缓冲区。
如果您的读缓冲区中没有字符,请读入新块。
如果读取缓冲区中的下一个字符是换行符,则返回结果缓冲区。
如果结果缓冲区已满,则会出现错误并且抱怨线条太长。
否则,将读缓冲区中的下一个字符添加到结果缓冲区中。
注意:所提问题的答案是等待发生的安全问题,以及潜在的内存泄漏。