【发布时间】:2019-05-24 22:02:13
【问题描述】:
我正在创建一个库,它被注入进程并重新定义一些函数,例如 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)而生效?
【问题讨论】:
标签: c signal-handling async-safe