为什么C标准包含许多不安全的功能?

And*_*man -8 c c99 c89 c11

为什么C标准包含许多不安全的功能,例如,它们是无用的(在良好的程序中它们不使用)并且有害getchar?为什么C标准不包含它们的有用功能,例如getch,和getche?这只是众多例子中的一个......

UPD我很困惑:gets而不是getchar.

Car*_*rum 10

你的意思是gets?不打破旧程序.过时的道路很漫长.此外,它被弃用.

  • @Bush:有很多很好的理由不添加它们.一个是许多历史系统具有相同名称的功能,这些功能完全不同; 试图使其中一个标准化对其他人来说是不可接受的.另一个原因是这些功能与stdio完全不同.例如,curses`getch`函数使用curses键代码而不是字符,并且与stdio缓冲不兼容. (6认同)