4

int puts(const char*);重入吗?我可以安全地将它放入信号处理程序吗?

4

2 回答 2

4

表列出了所有被认为对信号处理安全的函数:

“下表定义了一组功能,这些功能应可重入或不可被信号中断,并且应是异步信号安全的。”

puts似乎不在该列表中,但是根据this,它被认为是可重入的,但不是异步安全的,也许是为什么它不在上述列表中。

于 2011-05-09T09:47:58.480 回答
2

不,不是,但是您可以使用write()异步信号安全的 来从信号处理程序输出消息:

#include <unistd.h>

const char* msg = "The message to print.";
write(STDOUT_FILENO, msg, strlen(msg));
于 2011-05-09T09:59:11.083 回答