【发布时间】:2021-05-13 12:22:59
【问题描述】:
我知道这是一个奇怪的问题,但我想获取提到的“initscr”函数错误by the doc(在 stderr 上获取无效指针和错误消息)来测试包装器是否正常工作。
但我没有找到任何相关信息。我目前正在使用 ncurses 6.2。
经过一番研究,我发现无效指针实际上是一个 NULL,而不仅仅是一个指向任何地方的空指针。
但我无法破坏功能......
如果有人知道如何帮助我解决这个问题,请随时发表评论。
【问题讨论】:
-
the "initscr" error什么错误?by the doc什么文档?你能发个链接吗?to break the function什么功能? “破”具体是什么意思?你想把一个函数分成几块?你想从函数中return? -
对不起,我已经编辑了这个问题。还好吗?
-
Copyright © 1997 The Open Group版本有点旧 :p 所以你想“制造”initscr错误?检查它在 ncurses 中的来源,看看你能做什么。 man initscr 看起来更好。另外我认为你提到的文档很清楚:Upon successful completion, initscr() returns a pointer to stdscr. Otherwise, it does not return。如果出现错误initscr(),可能会在 UNIXv2 上调用abort()。那么getting invalid pointer and an error message on stderr你指的是什么? -
手册页遵循行为 -
If errors occur, initscr writes an appropriate error message to standard error and exits- “退出”,如调用exit()。是的 - 用行话来说,“无效指针”可以理解为NULL,但“无效指针”确实是任何指向任何地方的指针值,不仅是NULL。 -
好的 - github.com/mirror/ncurses/blob/master/ncurses/base/… 这里是 initscr。你可以“打破”动态分配——写你自己的
malloc并在initscr中返回NULL,这样strdup就会失败。
标签: c linux reverse-engineering ncurses