3
是int puts(const char*);
重入?我可以安全地將它放入信號處理程序中嗎?是可折返的嗎?
是int puts(const char*);
重入?我可以安全地將它放入信號處理程序中嗎?是可折返的嗎?
不,它不是,你可以使用,無論write()
,這是異步信號安全的,輸出信息從信號處理程序:
#include <unistd.h>
const char* msg = "The message to print.";
write(STDOUT_FILENO, msg, strlen(msg));
嗯,這裏是puts'和'write''之間的區別? – 2011-05-09 09:52:05
@Let_Me_Be:不確定,但'puts()'是stdio的一部分,它本身不是異步信號安全的。可能,但不限於,輸出緩衝等功能。 – 2011-05-09 10:01:20
@Christian是啊,你是對的,我完全忘了整個stdio在'FILE'結構而不是文件描述符之上工作。 – 2011-05-09 10:06:03