0 0

Linux下signal函数中不能使用非可重入函数的问题5

《Unix环境高级编程》一书中p247第一段介绍:注意,即使在本书中某些实例中,信号处理程序也调用了printf函数,但这并不保证产生所希望的结果,信号处理程序可能中断主程序中的printf函数调用。
在p246的“信号处理程序可以调用的可重入函数中”也不包括printf以及write、read之类的I/O系统调用。
那么信号处理函数中就不能打印语句了吗??

另外:《C陷阱与缺陷》一书中p90第三自然段最后一句话:“signal处理函数唯一安全、可移植的操作就是打印一条出错信息,然后使用longjump或exit立即退出程序”。
看来signal函数可以使用printf函数哦,但是使用了以后要求用longjump,或者立即退出。

那么,信号处理函数到底建不建议使用printf函数呢?如果建议使用的话,使用以后是不是必须像上述的用longjump或立即退出?

在signal函数中对printf函数的使用有些迷茫了。请赐教!
C 
2010年3月11日 11:08

1个答案 按时间排序 按投票排序

0 0

可以研究一下signal函数的源码。

2010年3月26日 09:25

相关推荐

    linux下C语言函数手册

    本手册详细介绍了在Linux环境下使用C语言编程时所涉及的各种函数,这对于理解和开发高效、可靠的系统级程序至关重要。这份"Linux下C语言函数手册"Word版,将为学习者提供一个全面的参考指南,帮助他们掌握C语言在...

    linuxC函数手册.chm

    《Linux C函数手册》是C语言编程在Linux环境下不可或缺的参考资源。这本书籍或文档集主要涵盖了在Linux操作系统中开发C程序时所用到的各种标准库函数、系统调用以及相关的编程接口。以下是对其中一些关键知识点的...

    Linux C函数 使用手册

    《Linux C函数 使用手册》是一份详尽的资源,涵盖了在Linux环境中使用C语言编程时可能会遇到的各种函数。这份手册经过验证,确保了其可用性,旨在帮助学习者和开发者更好地理解和应用C语言函数,提高他们在Linux开发...

    Linux 常用C函数

    本资源“Linux常用C函数(中文版)”提供了一份详细的C函数参考,涵盖了在Linux环境下编程时经常会遇到的一些关键函数。这些函数是C语言标准库的一部分,同时也是Linux系统调用的基础。下面,我们将深入探讨一些重要...

    Linux c 函数使用手册 Linux下编程

    以上只是部分关键知识点,"Linux c 函数使用手册"中还涵盖了更多函数,如数学函数、位操作函数、文件系统操作等,对于开发者来说是一份宝贵的参考资料。通过深入学习和实践,可以提升在Linux环境下编写高效、稳定C...

    signal函数的使用

    《深入理解signal函数及其在Unix/Linux系统中的应用》 在Unix和Linux系统中,`signal`函数是一个核心的系统调用,它允许程序员定义当特定的信号(Signal)发生时,程序应该如何响应。本文将详细解析`signal`函数的...

    linux中的signal机制

    相比之下,`sigaction`函数提供了更强大和安全的信号处理机制,支持同时捕获多个信号,并能确保信号处理函数在多线程环境中正确地执行。 ### 示例代码:信号处理 下面是一个使用`sigaction`函数处理SIGINT信号的...

    Linux函数详解(函数大全)

    本文将基于"Linux函数详解(函数大全)"这一主题,深入解析Linux C函数的使用和重要性,涵盖从基本输入输出到文件操作,再到进程控制等多个方面。 首先,我们从最基础的输入输出函数开始,如`printf`和`scanf`,...

    linux下c语言函数库参考手册

    在Linux环境下,理解信号的工作原理并正确使用这些函数,可以帮助开发者实现更健壮的错误处理和资源管理策略。 ### 九、环境变量与进程控制 `unistd.h`头文件提供了一系列用于进程控制和环境变量管理的函数,如`...

    Linux下c函数(全)

    "Linux下c函数(全)"这个主题涵盖了Linux环境中的C语言标准库和一些特定于Linux的系统调用。让我们深入探讨其中的一些关键知识点。 1. **C标准库函数**: - **输入/输出操作**:如`printf`和`scanf`用于格式化...

    Linux C 函数 使用手册

    Linux C 函数使用手册是程序员在开发Linux系统应用时的重要参考资料。这本手册由Linhan精心整理,包含了278个在Linux环境下常用的C语言函数,涵盖了从基本的数据操作、文件处理到系统调用等各个方面的功能。这些函数...

    linux c语言函数速查手册

    Linux系统中的C语言是开发系统级程序和编写高效软件的重要工具。C语言函数速查手册是程序员必备的参考资料,它提供了全面的函数介绍、用法示例和注意事项,帮助开发者快速解决问题。本手册覆盖了从基本输入输出到...

    Linux开发函数手册

    《Linux开发函数手册》是一本全面介绍Linux系统中开发者常用函数的权威指南,涵盖了Linux开发中的各个关键领域。通过对这些函数的学习和理解,开发者能够更好地掌握Linux系统编程的核心技术。 在Linux开发中,函数...

    linux常用C函数.rar

    这些函数只是众多Linux C编程中的一部分,深入理解和熟练使用它们能帮助开发者编写出高效且适应性强的程序。通过阅读压缩包中的HTML文档,你可以获得更详细的信息,包括函数的具体用法、参数说明和注意事项,这对于...

    Linux C 函数详细介绍

    Linux C函数在执行过程中可能会遇到错误,如内存分配失败、文件不存在等。通过检查返回值和设置errno全局变量,可以识别并处理这些错误。例如,malloc函数返回NULL表示内存分配失败,此时可以通过perror或strerror...

    linux常用c函数中文版

    本资源“linux常用c函数中文版”提供了一套详细的C语言函数库,特别针对Linux环境进行了优化和注解,帮助开发者更好地理解和使用这些函数。下面我们将深入探讨一些常见的Linux C函数以及它们在编程中的应用。 1. **...

    LinuxC常用函数手册

    这些只是Linux C编程中一部分常见的函数,深入学习和理解这些函数的使用方法对于编写高效、可靠的代码至关重要。通过阅读"Linux C 常用库函数手册.chm",你可以找到更详细的信息,包括每个函数的具体用法、参数说明...

    linux下常用c语言函数(word和pdf)

    本资源提供了两个文档,一个是"linux的c函数(Word版).doc",另一个是"Linux_C_fun.pdf",它们都包含了关于Linux环境下常用C语言函数的详细资料。下面我们将深入探讨这些知识点。 1. **标准库函数**: - `stdio.h`...

    Linux C 函数库中文手册 pdf + chm

    Linux C 函数库中文手册是为C语言程序员提供的一份宝贵资源,它详细阐述了在Linux环境下使用C语言编程时可能会遇到的各种函数及其用法。手册涵盖了标准C库(也称为GLIBC,GNU C Library)中的核心函数,以及与Linux...

    Linux下Signal信号.pdf

    - `setjmp`和`longjmp`函数:用于非本地跳转,可以在信号处理函数中使用,从而改变程序执行的流程。 ### 注意事项 在处理Signal信号时,有几个要点需要特别注意: 1. 不建议在信号处理函数中执行复杂的逻辑,包括...

Global site tag (gtag.js) - Google Analytics