c - 如何使用 ncurses 导致“initscr”中断?
问题描述
我知道这是一个奇怪的问题,但我想获取文档中提到的“initscr”函数错误(在 stderr 上获取无效指针和错误消息)来测试包装器是否正常工作。
但我没有找到任何相关信息。我目前正在使用 ncurses 6.2。
经过一番研究,我发现无效指针实际上是一个 NULL,而不仅仅是一个指向任何地方的空指针。
但我无法打破这个功能......
如果有人知道如何帮助我解决这个问题,请随时发表评论。
解决方案
以下程序:
#include <curses.h>
#include <malloc.h>
#include <stdlib.h>
bool my_malloc_disabled;
void *malloc(size_t size) {
if (my_malloc_disabled) {
return NULL;
}
void *__libc_malloc(size_t);
return __libc_malloc(size);
}
int main() {
my_malloc_disabled = 1;
initscr();
}
做:
$ gcc file.c -lcurses
$ ./a.out
Error opening allocating $TERM.
推荐阅读
- matlab - 幅度为 -1 db 的正弦波的均匀量化器
- reactjs - 如何在 ReactJS 中获取 api 数据?
- javascript - Javascript - 如何从多维数组中提取重复值并将它们放入单独的数组中?
- java - 比较对象练习 (Java)
- java - 方法中的空字符串返回语句,这只是为了名义目的还是可以改进?
- javascript - 如何使用reduce函数将数组转换为对象?
- sql - 你好,。我要 ssms 查询(SQL 查询)
- python - OpenCV背景减法获取颜色对象(Python)
- javascript - Asp.net core MVC 在不联系服务器的情况下禁用客户端计算机上的许多元素
- python - 如何在烧瓶中逐行返回一个json文件?