我正在制作一个库,它被注入进程并重新定义一些函数,例如 open(2) 在调用真正的 open(2) 之前执行一些任务。我的图书馆会调用 mmap(2)。由于 open(2) 是异步安全的,是否有人使用在信号处理程序中调用 open(2) 并且我的库还添加了对 mmap(2) 的调用的库的人可能会使他对 open(2) 的调用出错?
更新的问题:
void handle_sigint(int sig)
{
int fd = open(“file”, O_RDWR, 0666);
void *base = mmap(NULL, 20, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
}
在上面的函数中,对 open(2) 的调用是否会因为我调用了 mmap(2) 而受到影响?