POSIX实现的状态

6
我刚刚发现 getline() 函数,原本是 GNU 的扩展功能,现在已经成为 POSIX 2008 标准的一部分。
是否有一个概述,说明这个版本的 POSIX 得到了多广泛的支持?

2
+1 是为了花时间质疑什么是可移植性。 - R.. GitHub STOP HELPING ICE
1个回答

2
我建议您直接使用它。可以将getline(但不是更强大的getdelim)实现为一个非常快速/高效的fgets包装器,因此如果您愿意作为后备方案使用getline,则使用getline并不会使您的程序任何不可移植性(相对于使用__fpending之类的东西,它无法在所有地方实现,并且需要特定于实现的黑客来模拟)。另外,当然,getlinegetdelim都可以简单地基于flockfile/funlockfilefgetc实现。这不是很有效率,但在任何地方都可以工作。

1
getdelimgetline也可以基于fscanf实现,使用%200[^x]转换说明符,其中x被替换为您想要停止的分隔符字符,200是您拥有的缓冲空间量。(您可以使用snprintf%%%zu[^%c]生成此转换说明符。) - R.. GitHub STOP HELPING ICE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接