是否有任何 gcc 编译器选项或类似的东西来绕过过时的gets 函数? 获取危险fgets (+strlen)getline

问题描述

让我们先解决这个问题:我完全了解为什么不推荐使用 gets 函数以及它如何在不受控制的环境中被恶意使用。我确信该功能可以在我的设置中安全使用。

“替代”功能不适用于我的用例。我正在编写的软件对性能非常敏感,因此使用 fgets 然后使用一个完整的字符串循环(明确地或通过像 strlen 这样的辅助函数)来摆脱末尾的换行符字符串根本行不通。使用 gets 或类似的东西编写我自己的 getchar 函数也可能比本地实现效率低得多(更不用说非常容易出错)。

Visual Studio 编译器有一个符合我需要的 gets_s 函数,但是在 gcc 中找不到这个函数。是否有任何编译器选项/标志来恢复这个函数和/或它实现的一些替代函数?

提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)