我刚刚发现
是否有一个概述,说明这个版本的 POSIX 得到了多广泛的支持?
getline()
函数,原本是 GNU 的扩展功能,现在已经成为 POSIX 2008 标准的一部分。是否有一个概述,说明这个版本的 POSIX 得到了多广泛的支持?
getline
(但不是更强大的getdelim
)实现为一个非常快速/高效的fgets
包装器,因此如果您愿意作为后备方案使用getline
,则使用getline
并不会使您的程序任何不可移植性(相对于使用__fpending
之类的东西,它无法在所有地方实现,并且需要特定于实现的黑客来模拟)。另外,当然,getline
和getdelim
都可以简单地基于flockfile
/funlockfile
和fgetc
实现。这不是很有效率,但在任何地方都可以工作。getdelim
和getline
也可以基于fscanf
实现,使用%200[^x]
转换说明符,其中x
被替换为您想要停止的分隔符字符,200是您拥有的缓冲空间量。(您可以使用snprintf
和%%%zu[^%c]
生成此转换说明符。) - R.. GitHub STOP HELPING ICE