当前位置: 技术问答>linux和unix
关于fprintf,write的区别
来源: 互联网 发布时间:2016-11-08
本文导语: 在学习信号那一章节的时候,文中提到这样一个问题: 在程序的信号操作函数之中,我们使用了 write 函数而没有使用 fprintf 函数.是因为我们要考虑到下面这种情况.如果我们在信号操作的时候又有一个信号发生,那...
在学习信号那一章节的时候,文中提到这样一个问题:
在程序的信号操作函数之中,我们使用了 write 函数而没有使用 fprintf 函数.是因为我们要考虑到下面这种情况.如果我们在信号操作的时候又有一个信号发生,那么程序该如何运行呢? 为了处理在信号处理函数运行的时候信号的发生,我们需要设置sa_mask 成员. 我们将我们要屏蔽的信号添加到 sa_mask 结构当中去,这样这些函数在信号处理的时候就会被屏蔽掉的.
#define PROMPT "nothing"
函数write(STDERR_FILENO,prompt,strlen(prompt));
我很疑惑上面那段话中“那么程序该如何运行呢?”后面的内容是对这句话的回答么?可是没有说明为什么用write而不用fprintf啊?还有一个问题,就是这两种函数在打印到终端的时候有什么区别?
在程序的信号操作函数之中,我们使用了 write 函数而没有使用 fprintf 函数.是因为我们要考虑到下面这种情况.如果我们在信号操作的时候又有一个信号发生,那么程序该如何运行呢? 为了处理在信号处理函数运行的时候信号的发生,我们需要设置sa_mask 成员. 我们将我们要屏蔽的信号添加到 sa_mask 结构当中去,这样这些函数在信号处理的时候就会被屏蔽掉的.
#define PROMPT "nothing"
函数write(STDERR_FILENO,prompt,strlen(prompt));
我很疑惑上面那段话中“那么程序该如何运行呢?”后面的内容是对这句话的回答么?可是没有说明为什么用write而不用fprintf啊?还有一个问题,就是这两种函数在打印到终端的时候有什么区别?
|
感觉这段话稀里糊涂的,是哪本书上的?语文没学好
write和fprintf的区别是:
前者是无缓冲的,后者是带缓冲的
前者是可重入的函数,后者不是可重入的
不可重入的函数不能在信号处理函数中调用。
write和fprintf的区别是:
前者是无缓冲的,后者是带缓冲的
前者是可重入的函数,后者不是可重入的
不可重入的函数不能在信号处理函数中调用。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。