Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CURLOPT_NOSIGNAL (3)

Name

CURLOPT_NOSIGNAL - skip all signal handling

Synopsis

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_NOSIGNAL, long onoff);

Description

CURLOPT_NOSIGNAL(3)        curl_easy_setopt options        CURLOPT_NOSIGNAL(3)



NAME
       CURLOPT_NOSIGNAL - skip all signal handling

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_NOSIGNAL, long onoff);

DESCRIPTION
       If  onoff  is 1, libcurl will not use any functions that install signal
       handlers or any functions that cause signals to be sent to the process.
       This  option is here to allow multi-threaded unix applications to still
       set/use all timeout options etc, without risking getting signals.

       If this option is set and libcurl has been built with the standard name
       resolver,  timeouts  will not occur while the name resolve takes place.
       Consider building libcurl with the c-ares or threaded resolver backends
       to  enable  asynchronous  DNS  lookups,  to  enable  timeouts  for name
       resolves without the use of signals.

       Setting CURLOPT_NOSIGNAL(3) to 1 makes libcurl NOT ask  the  system  to
       ignore  SIGPIPE  signals,  which  otherwise are sent by the system when
       trying to send data to a socket which  is  closed  in  the  other  end.
       libcurl  makes  an  effort to never cause such SIGPIPEs to trigger, but
       some operating systems have no way to avoid them and even on those that
       have  there  are some corner cases when they may still happen, contrary
       to our desire. In addition, using CURLAUTH_NTLM_WB authentication could
       cause a SIGCHLD signal to be raised.

DEFAULT
       0

PROTOCOLS
       All

EXAMPLE
       CURL *curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");

         curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L);

         ret = curl_easy_perform(curl);

         curl_easy_cleanup(curl);
       }

AVAILABILITY
       Added in 7.10

RETURN VALUE
       Returns  CURLE_OK  if the option is supported, and CURLE_UNKNOWN_OPTION
       if not.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | web/curl         |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       CURLOPT_TIMEOUT(3),



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source      was      downloaded       from        https://curl.se/down-
       load/curl-7.83.1.tar.bz2.

       Further information about this software can be found on the open source
       community website at http://curl.haxx.se/.



libcurl 7.83.1                 November 26, 2021           CURLOPT_NOSIGNAL(3)