.TH "tzsl" 3teegris "Sun Oct 28 2018" "Version 2.0" "Samsung Internal API reference" \" -*- nroff -*-
.ad l
.nh
.SH NAME
tzsl \- Auxiliary API
.SS "Files"

.in +1c
.ti -1c
.RI "file \fBerror\&.h\fP"
.br
.ti -1c
.RI "file \fBmman\&.h\fP"
.br
.ti -1c
.RI "file \fBphys\&.h\fP"
.br
.in -1c
.SS "Data Structures"

.in +1c
.ti -1c
.RI "struct \fBcpu_set_t\fP"
.br
.ti -1c
.RI "struct \fBtm\fP"
.br
.ti -1c
.RI "struct \fB__uuid_t\fP"
.br
.RI "\fIwrapper for uuid type\&. \fP"
.in -1c
.SS "Macros"

.in +1c
.ti -1c
.RI "#define \fBassert\fP(expr)     __assert__(expr, __FILE__, __LINE__)"
.br
.RI "\fIAbort the program if assertion is false\&. \fP"
.ti -1c
.RI "#define \fBEPERM\fP   1	/* Operation not permitted */"
.br
.ti -1c
.RI "#define \fBENOENT\fP   2	/* No such file or directory */"
.br
.ti -1c
.RI "#define \fBESRCH\fP   3	/* No such process */"
.br
.ti -1c
.RI "#define \fBEINTR\fP   4	/* Interrupted system call */"
.br
.ti -1c
.RI "#define \fBEIO\fP   5	/* I/O error */"
.br
.ti -1c
.RI "#define \fBENXIO\fP   6	/* No such device or address */"
.br
.ti -1c
.RI "#define \fBE2BIG\fP   7	/* Argument list too long */"
.br
.ti -1c
.RI "#define \fBENOEXEC\fP   8	/* Exec format error */"
.br
.ti -1c
.RI "#define \fBEBADF\fP   9	/* Bad file number */"
.br
.ti -1c
.RI "#define \fBECHILD\fP   10	/* No child processes */"
.br
.ti -1c
.RI "#define \fBEAGAIN\fP   11	/* Try again */"
.br
.ti -1c
.RI "#define \fBENOMEM\fP   12	/* Out of memory */"
.br
.ti -1c
.RI "#define \fBEACCES\fP   13	/* Permission denied */"
.br
.ti -1c
.RI "#define \fBEFAULT\fP   14	/* Bad address */"
.br
.ti -1c
.RI "#define \fBENOTBLK\fP   15	/* Block device required */"
.br
.ti -1c
.RI "#define \fBEBUSY\fP   16	/* Device or resource busy */"
.br
.ti -1c
.RI "#define \fBEEXIST\fP   17	/* File exists */"
.br
.ti -1c
.RI "#define \fBEXDEV\fP   18	/* Cross\-device link */"
.br
.ti -1c
.RI "#define \fBENODEV\fP   19	/* No such device */"
.br
.ti -1c
.RI "#define \fBENOTDIR\fP   20	/* Not a directory */"
.br
.ti -1c
.RI "#define \fBEISDIR\fP   21	/* Is a directory */"
.br
.ti -1c
.RI "#define \fBEINVAL\fP   22	/* Invalid argument */"
.br
.ti -1c
.RI "#define \fBENFILE\fP   23	/* File table overflow */"
.br
.ti -1c
.RI "#define \fBEMFILE\fP   24	/* Too many \fBopen\fP files */"
.br
.ti -1c
.RI "#define \fBENOTTY\fP   25	/* Not a typewriter */"
.br
.ti -1c
.RI "#define \fBETXTBSY\fP   26	/* Text file busy */"
.br
.ti -1c
.RI "#define \fBEFBIG\fP   27	/* File too large */"
.br
.ti -1c
.RI "#define \fBENOSPC\fP   28	/* No space left on device */"
.br
.ti -1c
.RI "#define \fBESPIPE\fP   29	/* Illegal seek */"
.br
.ti -1c
.RI "#define \fBEROFS\fP   30	/* Read\-only file system */"
.br
.ti -1c
.RI "#define \fBEMLINK\fP   31	/* Too many links */"
.br
.ti -1c
.RI "#define \fBEPIPE\fP   32	/* Broken pipe */"
.br
.ti -1c
.RI "#define \fBEDOM\fP   33	/* Math argument out of domain of func */"
.br
.ti -1c
.RI "#define \fBERANGE\fP   34	/* Math result not representable */"
.br
.ti -1c
.RI "#define \fBEDEADLK\fP   35	/* Resource deadlock would occur */"
.br
.ti -1c
.RI "#define \fBENAMETOOLONG\fP   36	/* File name too long */"
.br
.ti -1c
.RI "#define \fBENOLCK\fP   37	/* No record locks available */"
.br
.ti -1c
.RI "#define \fBENOSYS\fP   38	/* Function not implemented */"
.br
.ti -1c
.RI "#define \fBENOTEMPTY\fP   39	/* Directory not empty */"
.br
.ti -1c
.RI "#define \fBELOOP\fP   40	/* Too many symbolic links encountered */"
.br
.ti -1c
.RI "#define \fBEWOULDBLOCK\fP   \fBEAGAIN\fP	/* Operation would block */"
.br
.ti -1c
.RI "#define \fBENOMSG\fP   42	/* No message of desired type */"
.br
.ti -1c
.RI "#define \fBEIDRM\fP   43	/* Identifier removed */"
.br
.ti -1c
.RI "#define \fBECHRNG\fP   44	/* Channel number out of range */"
.br
.ti -1c
.RI "#define \fBEL2NSYNC\fP   45	/* Level 2 not synchronized */"
.br
.ti -1c
.RI "#define \fBEL3HLT\fP   46	/* Level 3 halted */"
.br
.ti -1c
.RI "#define \fBEL3RST\fP   47	/* Level 3 reset */"
.br
.ti -1c
.RI "#define \fBELNRNG\fP   48	/* Link number out of range */"
.br
.ti -1c
.RI "#define \fBEUNATCH\fP   49	/* Protocol driver not attached */"
.br
.ti -1c
.RI "#define \fBENOCSI\fP   50	/* No CSI structure available */"
.br
.ti -1c
.RI "#define \fBEL2HLT\fP   51	/* Level 2 halted */"
.br
.ti -1c
.RI "#define \fBEBADE\fP   52	/* Invalid exchange */"
.br
.ti -1c
.RI "#define \fBEBADR\fP   53	/* Invalid request descriptor */"
.br
.ti -1c
.RI "#define \fBEXFULL\fP   54	/* Exchange full */"
.br
.ti -1c
.RI "#define \fBENOANO\fP   55	/* No anode */"
.br
.ti -1c
.RI "#define \fBEBADRQC\fP   56	/* Invalid request code */"
.br
.ti -1c
.RI "#define \fBEBADSLT\fP   57	/* Invalid slot */"
.br
.ti -1c
.RI "#define \fBEDEADLOCK\fP   \fBEDEADLK\fP"
.br
.ti -1c
.RI "#define \fBEBFONT\fP   59	/* Bad font file format */"
.br
.ti -1c
.RI "#define \fBENOSTR\fP   60	/* Device not a stream */"
.br
.ti -1c
.RI "#define \fBENODATA\fP   61	/* No data available */"
.br
.ti -1c
.RI "#define \fBETIME\fP   62	/* Timer expired */"
.br
.ti -1c
.RI "#define \fBENOSR\fP   63	/* Out of streams resources */"
.br
.ti -1c
.RI "#define \fBENONET\fP   64	/* Machine is not on the network */"
.br
.ti -1c
.RI "#define \fBENOPKG\fP   65	/* Package not installed */"
.br
.ti -1c
.RI "#define \fBEREMOTE\fP   66	/* Object is remote */"
.br
.ti -1c
.RI "#define \fBENOLINK\fP   67	/* Link has been severed */"
.br
.ti -1c
.RI "#define \fBEADV\fP   68	/* Advertise error */"
.br
.ti -1c
.RI "#define \fBESRMNT\fP   69	/* Srmount error */"
.br
.ti -1c
.RI "#define \fBECOMM\fP   70	/* Communication error on \fBsend\fP */"
.br
.ti -1c
.RI "#define \fBEPROTO\fP   71	/* Protocol error */"
.br
.ti -1c
.RI "#define \fBEMULTIHOP\fP   72	/* Multihop attempted */"
.br
.ti -1c
.RI "#define \fBEDOTDOT\fP   73	/* RFS specific error */"
.br
.ti -1c
.RI "#define \fBEBADMSG\fP   74	/* Not a data message */"
.br
.ti -1c
.RI "#define \fBEOVERFLOW\fP   75	/* Value too large for defined data type */"
.br
.ti -1c
.RI "#define \fBENOTUNIQ\fP   76	/* Name not unique on network */"
.br
.ti -1c
.RI "#define \fBEBADFD\fP   77	/* File descriptor in bad state */"
.br
.ti -1c
.RI "#define \fBEREMCHG\fP   78	/* Remote address changed */"
.br
.ti -1c
.RI "#define \fBELIBACC\fP   79	/* Can not access a needed shared library */"
.br
.ti -1c
.RI "#define \fBELIBBAD\fP   80	/* Accessing a corrupted shared library */"
.br
.ti -1c
.RI "#define \fBELIBSCN\fP   81	/* \&.lib section in a\&.out corrupted */"
.br
.ti -1c
.RI "#define \fBELIBMAX\fP   82	/* Attempting to link in too many shared libraries */"
.br
.ti -1c
.RI "#define \fBELIBEXEC\fP   83	/* Cannot exec a shared library directly */"
.br
.ti -1c
.RI "#define \fBEILSEQ\fP   84	/* Illegal byte sequence */"
.br
.ti -1c
.RI "#define \fBERESTART\fP   85	/* Interrupted system call should be restarted */"
.br
.ti -1c
.RI "#define \fBESTRPIPE\fP   86	/* Streams pipe error */"
.br
.ti -1c
.RI "#define \fBEUSERS\fP   87	/* Too many users */"
.br
.ti -1c
.RI "#define \fBENOTSOCK\fP   88	/* Socket operation on non\-\fBsocket\fP */"
.br
.ti -1c
.RI "#define \fBEDESTADDRREQ\fP   89	/* Destination address required */"
.br
.ti -1c
.RI "#define \fBEMSGSIZE\fP   90	/* Message too long */"
.br
.ti -1c
.RI "#define \fBEPROTOTYPE\fP   91	/* Protocol wrong type for \fBsocket\fP */"
.br
.ti -1c
.RI "#define \fBENOPROTOOPT\fP   92	/* Protocol not available */"
.br
.ti -1c
.RI "#define \fBEPROTONOSUPPORT\fP   93	/* Protocol not supported */"
.br
.ti -1c
.RI "#define \fBESOCKTNOSUPPORT\fP   94	/* Socket type not supported */"
.br
.ti -1c
.RI "#define \fBEOPNOTSUPP\fP   95	/* Operation not supported on transport endpoint */"
.br
.ti -1c
.RI "#define \fBEPFNOSUPPORT\fP   96	/* Protocol family not supported */"
.br
.ti -1c
.RI "#define \fBEAFNOSUPPORT\fP   97	/* Address family not supported by protocol */"
.br
.ti -1c
.RI "#define \fBEADDRINUSE\fP   98	/* Address already in use */"
.br
.ti -1c
.RI "#define \fBEADDRNOTAVAIL\fP   99	/* Cannot assign requested address */"
.br
.ti -1c
.RI "#define \fBENETDOWN\fP   100	/* Network is down */"
.br
.ti -1c
.RI "#define \fBENETUNREACH\fP   101	/* Network is unreachable */"
.br
.ti -1c
.RI "#define \fBENETRESET\fP   102	/* Network dropped connection because of reset */"
.br
.ti -1c
.RI "#define \fBECONNABORTED\fP   103	/* Software caused connection \fBabort\fP */"
.br
.ti -1c
.RI "#define \fBECONNRESET\fP   104	/* Connection reset by peer */"
.br
.ti -1c
.RI "#define \fBENOBUFS\fP   105	/* No buffer space available */"
.br
.ti -1c
.RI "#define \fBEISCONN\fP   106	/* Transport endpoint is already connected */"
.br
.ti -1c
.RI "#define \fBENOTCONN\fP   107	/* Transport endpoint is not connected */"
.br
.ti -1c
.RI "#define \fBESHUTDOWN\fP   108	/* Cannot \fBsend\fP after transport endpoint shutdown */"
.br
.ti -1c
.RI "#define \fBETOOMANYREFS\fP   109	/* Too many references: cannot splice */"
.br
.ti -1c
.RI "#define \fBETIMEDOUT\fP   110	/* Connection timed out */"
.br
.ti -1c
.RI "#define \fBECONNREFUSED\fP   111	/* Connection refused */"
.br
.ti -1c
.RI "#define \fBEHOSTDOWN\fP   112	/* Host is down */"
.br
.ti -1c
.RI "#define \fBEHOSTUNREACH\fP   113	/* No route to host */"
.br
.ti -1c
.RI "#define \fBEALREADY\fP   114	/* Operation already in progress */"
.br
.ti -1c
.RI "#define \fBEINPROGRESS\fP   115	/* Operation now in progress */"
.br
.ti -1c
.RI "#define \fBESTALE\fP   116	/* Stale file handle */"
.br
.ti -1c
.RI "#define \fBEUCLEAN\fP   117	/* Structure needs cleaning */"
.br
.ti -1c
.RI "#define \fBENOTNAM\fP   118	/* Not a XENIX named type file */"
.br
.ti -1c
.RI "#define \fBENAVAIL\fP   119	/* No XENIX semaphores available */"
.br
.ti -1c
.RI "#define \fBEISNAM\fP   120	/* Is a named type file */"
.br
.ti -1c
.RI "#define \fBEREMOTEIO\fP   121	/* Remote I/O error */"
.br
.ti -1c
.RI "#define \fBEDQUOT\fP   122	/* Quota exceeded */"
.br
.ti -1c
.RI "#define \fBECANCELED\fP   125	/* Operation canceled */"
.br
.ti -1c
.RI "#define \fBENOKEY\fP   126	/* Required key not available */"
.br
.ti -1c
.RI "#define \fBerrno\fP   (*\fBget_errno_addr\fP())"
.br
.ti -1c
.RI "#define \fBPRId16\fP   __16_PREFIX 'd'"
.br
.ti -1c
.RI "#define \fBPRId32\fP   'd'"
.br
.ti -1c
.RI "#define \fBPRId64\fP   __64_PREFIX 'd'"
.br
.ti -1c
.RI "#define \fBPRIu16\fP   __16_PREFIX 'u'"
.br
.ti -1c
.RI "#define \fBPRIu32\fP   'u'"
.br
.ti -1c
.RI "#define \fBPRIu64\fP   __64_PREFIX 'u'"
.br
.ti -1c
.RI "#define \fBPRIx16\fP   __16_PREFIX 'x'"
.br
.ti -1c
.RI "#define \fBPRIx32\fP   'x'"
.br
.ti -1c
.RI "#define \fBPRIx64\fP   __64_PREFIX 'x'"
.br
.ti -1c
.RI "#define \fBSCNd16\fP   __16_PREFIX 'd'"
.br
.ti -1c
.RI "#define \fBSCNd32\fP   'd'"
.br
.ti -1c
.RI "#define \fBSCNd64\fP   __64_PREFIX 'd'"
.br
.ti -1c
.RI "#define \fBSCNu16\fP   __16_PREFIX 'u'"
.br
.ti -1c
.RI "#define \fBSCNu32\fP   'u'"
.br
.ti -1c
.RI "#define \fBSCNu64\fP   __64_PREFIX 'u'"
.br
.ti -1c
.RI "#define \fBSCNx16\fP   __16_PREFIX 'x'"
.br
.ti -1c
.RI "#define \fBSCNx32\fP   'x'"
.br
.ti -1c
.RI "#define \fBSCNx64\fP   __64_PREFIX 'x'"
.br
.ti -1c
.RI "#define \fBCHAR_BIT\fP   8"
.br
.ti -1c
.RI "#define \fBSCHAR_MAX\fP   (127)"
.br
.ti -1c
.RI "#define \fBSCHAR_MIN\fP   (\-128)"
.br
.ti -1c
.RI "#define \fBUCHAR_MAX\fP   (255)"
.br
.ti -1c
.RI "#define \fBUSHRT_MAX\fP   (0xFFFFU)"
.br
.ti -1c
.RI "#define \fBSHRT_MAX\fP   (32767)"
.br
.ti -1c
.RI "#define \fBSHRT_MIN\fP   (\-32768)"
.br
.ti -1c
.RI "#define \fBINT_MAX\fP   ((int)(~0U>>1))"
.br
.ti -1c
.RI "#define \fBINT_MIN\fP   (\-\fBINT_MAX\fP \- 1)"
.br
.ti -1c
.RI "#define \fBLONG_MAX\fP   ((long)(~0UL>>1))"
.br
.ti -1c
.RI "#define \fBLONG_MIN\fP   (\-\fBLONG_MAX\fP \- 1)"
.br
.ti -1c
.RI "#define \fBUINT_MAX\fP   (~0U)"
.br
.ti -1c
.RI "#define \fBULONG_MAX\fP   (~0UL)"
.br
.ti -1c
.RI "#define \fBULLONG_MAX\fP   (~0ULL)"
.br
.ti -1c
.RI "#define \fBLLONG_MAX\fP   ((long long)(~0ULL>>1))"
.br
.ti -1c
.RI "#define \fBLLONG_MIN\fP   ((long long)(\-\fBLLONG_MAX\fP \- 1))"
.br
.ti -1c
.RI "#define \fB_POSIX_THREAD_KEYS_MAX\fP   12"
.br
.ti -1c
.RI "#define \fBPTHREAD_KEYS_MAX\fP   \fB_POSIX_THREAD_KEYS_MAX\fP"
.br
.ti -1c
.RI "#define \fBM_CACHE_PAGES\fP   1"
.br
.ti -1c
.RI "#define \fBAUTO_BUFFER_SIZE\fP   1024"
.br
.ti -1c
.RI "#define \fBBIT_PER_CPU\fP   (1)"
.br
.ti -1c
.RI "#define \fBMAX_CPUS\fP   (32)"
.br
.ti -1c
.RI "#define \fBBITS_TO_CPU_MASK\fP(bits)   (((bits) + BITS_PER_LONG \- 1) / BITS_PER_LONG)"
.br
.ti -1c
.RI "#define \fBBITMAP_ELT\fP(cpu)       ((cpu) / BITS_PER_LONG)"
.br
.ti -1c
.RI "#define \fB__CPUMASK\fP(cpu)         (1L << ((cpu) % BITS_PER_LONG))"
.br
.ti -1c
.RI "#define \fBDECLARE_BITMAP\fP(name,  bits)   unsigned long name[\fBBITS_TO_CPU_MASK\fP(bits)]"
.br
.ti -1c
.RI "#define \fBCPU_ZERO\fP(cpusetp)                                                                                          "
.br
.ti -1c
.RI "#define \fBCPU_SET\fP(cpu,  cpusetp)                                                                                  "
.br
.ti -1c
.RI "#define \fBCPU_CLR\fP(cpu,  cpusetp)                                                                                          "
.br
.ti -1c
.RI "#define \fBCPU_ISSET\fP(cpu,  cpusetp)                                                                                    "
.br
.ti -1c
.RI "#define \fBEOF\fP   (\-1)"
.br
.ti -1c
.RI "#define \fBMAP_ANONYMOUS\fP   (1 << 0)"
.br
.ti -1c
.RI "#define \fBMAP_POPULATE\fP   (1 << 1)"
.br
.ti -1c
.RI "#define \fBMAP_FIXED\fP   (1 << 2)"
.br
.ti -1c
.RI "#define \fBMAP_PRIVATE\fP   (1 << 3)"
.br
.ti -1c
.RI "#define \fBMAP_SHARED\fP   (1 << 4)"
.br
.ti -1c
.RI "#define \fBPROT_NONE\fP   0"
.br
.ti -1c
.RI "#define \fBPROT_READ\fP   1"
.br
.ti -1c
.RI "#define \fBPROT_WRITE\fP   2"
.br
.ti -1c
.RI "#define \fBPROT_EXEC\fP   4"
.br
.ti -1c
.RI "#define \fBPGOFF_SHIFT\fP   12"
.br
.ti -1c
.RI "#define \fBPHYS_DEV_NAME\fP   'phys://'"
.br
.ti -1c
.RI "#define \fBPHYS_DEV_NAME_LEN\fP   (sizeof(\fBPHYS_DEV_NAME\fP) \- 1)"
.br
.ti -1c
.RI "#define \fBMAP_PHYS_NON_SECURE\fP   (1 << 29)"
.br
.ti -1c
.RI "#define \fBMAP_PHYS_NON_CACHED\fP   (1 << 28)"
.br
.ti -1c
.RI "#define \fBMAP_FAILED\fP   ((void *)\-1)"
.br
.ti -1c
.RI "#define \fBNUM_SECONDS_IN_MIN\fP   (60)"
.br
.ti -1c
.RI "#define \fBNUM_MILLIS_IN_SEC\fP   (1000)"
.br
.ti -1c
.RI "#define \fBNUM_NANOS_IN_USEC\fP   (1000)"
.br
.ti -1c
.RI "#define \fBNUM_NANOS_IN_MILLI\fP   (1000000L)"
.br
.ti -1c
.RI "#define \fBNUM_NANOS_IN_SEC\fP   (1000000000ULL)"
.br
.ti -1c
.RI "#define \fBTEMP_FAILURE_RETRY\fP(expression)"
.br
.RI "\fIRecall function if it was interrupted by signal\&. \fP"
.ti -1c
.RI "#define \fBUUID_STRING_LEN\fP   37"
.br
.ti -1c
.RI "#define \fBuuid_unparse_lower\fP(uu,  out)   \fBuuid_unparse\fP((uu), (out))"
.br
.ti -1c
.RI "#define \fBuuid_generate_time\fP(x)   \fBuuid_generate\fP(x)"
.br
.in -1c
.SS "Typedefs"

.in +1c
.ti -1c
.RI "typedef int \fBerrno_t\fP"
.br
.ti -1c
.RI "typedef int \fBssize_t\fP"
.br
.ti -1c
.RI "typedef int \fBpid_t\fP"
.br
.ti -1c
.RI "typedef int \fBuid_t\fP"
.br
.ti -1c
.RI "typedef int \fBgid_t\fP"
.br
.ti -1c
.RI "typedef long long \fBtime_t\fP"
.br
.ti -1c
.RI "typedef int64_t \fBoff_t\fP"
.br
.ti -1c
.RI "typedef unsigned int \fBmode_t\fP"
.br
.ti -1c
.RI "typedef struct \fB__uuid_t\fP \fB__uuid_t\fP"
.br
.ti -1c
.RI "typedef \fB__uuid_t\fP \fBuuid_t\fP"
.br
.ti -1c
.RI "typedef void(* \fBconstraint_handler_t\fP) (const char *restrict msg, void *restrict ptr, \fBerrno_t\fP error)"
.br
.in -1c
.SS "Functions"

.in +1c
.ti -1c
.RI "static int \fBisspace\fP (int c)"
.br
.RI "\fICheck for white-space characters\&. These are: space, form-feed ('\\f'), newline ('\\n'), carriage return ('\\r'), horizontal tab ('\\t'), and vertical tab ('\\v')\&. \fP"
.ti -1c
.RI "static int \fBisascii\fP (int c)"
.br
.RI "\fICheck whether \fCc\fP is a 7-bit unsigned char value that fits into the ASCII character set\&. \fP"
.ti -1c
.RI "static int \fBisupper\fP (int c)"
.br
.RI "\fICheck for an uppercase letter\&. \fP"
.ti -1c
.RI "static int \fBislower\fP (int c)"
.br
.RI "\fICheck for an lowercase letter\&. \fP"
.ti -1c
.RI "static int \fBisalpha\fP (int c)"
.br
.RI "\fICheck for an alphabetic character; it is equivalent to (isupper(c) || islower(c)) \fP"
.ti -1c
.RI "static int \fBisdigit\fP (int c)"
.br
.RI "\fICheck for a digit (0 through 9) \fP"
.ti -1c
.RI "static int \fBisalnum\fP (int c)"
.br
.RI "\fICheck for an alphanumeric character; it is equivalent to (isalpha(c) || isdigit(c))\&. \fP"
.ti -1c
.RI "static int \fBisblank\fP (int c)"
.br
.RI "\fICheck for a blank character; that is, a space or a tab\&. \fP"
.ti -1c
.RI "static int \fBisxdigit\fP (int c)"
.br
.RI "\fICheck for hexadecimal digits, that is, one of 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F\&. \fP"
.ti -1c
.RI "static int \fBisprint\fP (int c)"
.br
.RI "\fICheck for any printable character including space\&. \fP"
.ti -1c
.RI "static int \fBisgraph\fP (int c)"
.br
.RI "\fICheck for any printable character except space\&. \fP"
.ti -1c
.RI "static int \fBispunct\fP (int c)"
.br
.RI "\fICheck for any printable character which is not a space or an alphanumeric character\&. \fP"
.ti -1c
.RI "static int \fBiscntrl\fP (int c)"
.br
.RI "\fICheck for a control character\&. \fP"
.ti -1c
.RI "static int \fBtoupper\fP (int c)"
.br
.RI "\fIConvert lowercase letter to uppercase\&. \fP"
.ti -1c
.RI "static int \fBtolower\fP (int c)"
.br
.RI "\fIConvert uppercase letter to lowercase\&. \fP"
.ti -1c
.RI "int * \fBget_errno_addr\fP (void)"
.br
.RI "\fIThis function should NOT be used directly, use '\fBerrno\fP' instead\&. \fP"
.ti -1c
.RI "int \fBopen\fP (const char *pathname, int flags,\&.\&.\&.)"
.br
.RI "\fIOpen a device by specifying its namespace path\&. Device driver operations should be previously registered with the namespace framework\&. \fP"
.ti -1c
.RI "int \fBprintf_no_alloc\fP (const char *fmt,\&.\&.\&.)"
.br
.RI "\fIPrints to ringbuffer\&. If resulting string exceeds AUTO_BUFFER_SIZE, cuts it off to AUTO_BUFFER_SIZE\&. \fP"
.ti -1c
.RI "int \fBsched_yield\fP (void)"
.br
.RI "\fICauses the calling thread to relinquish the CPU\&. The thread is moved to the end of the queue for its static priority and a new thread gets to run\&. \fP"
.ti -1c
.RI "int \fBsched_setaffinity\fP (\fBpid_t\fP pid, size_t cpusetsize, \fBcpu_set_t\fP *mask)"
.br
.RI "\fISets the CPU affinity mask of the process whose \fCID\fP is pid to the value specified by \fCmask\fP\&. If pid is zero, then the calling process is used\&. \fP"
.ti -1c
.RI "int \fBsched_getaffinity\fP (\fBpid_t\fP pid, size_t cpusetsize, \fBcpu_set_t\fP *mask)"
.br
.RI "\fIWrites the affinity mask of the process whose \fCID\fP is pid into the \fC\fBcpu_set_t\fP\fP structure pointed to by \fCmask\fP\&. \fP"
.ti -1c
.RI "int \fBprintf\fP (const char *fmt,\&.\&.\&.)"
.br
.RI "\fIFormat and print string\&. \fP"
.ti -1c
.RI "int \fBfprintf\fP (FILE *_restrict_ stream, const char *_restrict_ fmt,\&.\&.\&.)"
.br
.RI "\fIThe \fBfprintf()\fP is equivalent to the \fBprintf()\fP, but uses a custom file handle\&. \fP"
.ti -1c
.RI "int \fBvfprintf\fP (FILE *_restrict_ stream, const char *_restrict_ fmt, va_list ap)"
.br
.RI "\fIThe \fBvfprintf()\fP is equivalent to the \fBfprintf()\fP, but uses an argument list\&. \fP"
.ti -1c
.RI "int \fBfflush\fP (FILE *stream)"
.br
.RI "\fIFlush a stream\&. \fP"
.ti -1c
.RI "int \fBsprintf\fP (char *s, const char *fmt,\&.\&.\&.)"
.br
.RI "\fIformat and string and save it to `s'\&. \fP"
.ti -1c
.RI "int \fBprintf_s\fP (const char *restrict fmt,\&.\&.\&.)"
.br
.RI "\fIformat and print string\&. \fP"
.ti -1c
.RI "int \fBvsprintf_s\fP (char *restrict s, rsize_t n, const char *restrict format, va_list arg)"
.br
.RI "\fIWrite formatted data from variable length argument list to string\&. \fP"
.ti -1c
.RI "int \fBvsnprintf_s\fP (char *restrict s, rsize_t n, const char *restrict format, va_list arg)"
.br
.RI "\fIWrite formatted data from variable argument list to sized buffer\&. \fP"
.ti -1c
.RI "int \fBsprintf_s\fP (char *restrict s, rsize_t n, const char *restrict format,\&.\&.\&.)"
.br
.RI "\fIformat string and save it to `s'\&. \fP"
.ti -1c
.RI "int \fBsnprintf_s\fP (char *restrict s, rsize_t n, const char *restrict format,\&.\&.\&.)"
.br
.RI "\fIFormat string and save it to `s'\&. \fP"
.ti -1c
.RI "int \fBsscanf_s\fP (const char *restrict s, const char *restrict format,\&.\&.\&.)"
.br
.RI "\fIReads data safely from buf and stores them according to parameter fmt into the locations given by the additional arguments\&. \fP"
.ti -1c
.RI "int \fBvsscanf_s\fP (const char *restrict s, const char *restrict format, va_list arg)"
.br
.RI "\fIvsscanf unformat a buffer into a list of arguments\&. \fP"
.ti -1c
.RI "int \fBsnprintf\fP (char *s, size_t count, const char *fmt,\&.\&.\&.)"
.br
.RI "\fIformat and string and save it to `s'\&. \fP"
.ti -1c
.RI "int \fBvsprintf\fP (char *buffer, const char *format, va_list args)"
.br
.RI "\fIWrite formatted data from variable argument list to string\&. \fP"
.ti -1c
.RI "int \fBvsnprintf\fP (char *buffer, size_t size, const char *format, va_list args)"
.br
.RI "\fIWrite formatted data from variable argument list to sized buffer\&. \fP"
.ti -1c
.RI "int \fBsscanf\fP (const char *buf, const char *fmt,\&.\&.\&.)"
.br
.RI "\fIReads data from buf and stores them according to parameter fmt into the locations given by the additional arguments\&. \fP"
.ti -1c
.RI "int \fBasprintf\fP (char **strp, const char *fmt,\&.\&.\&.)"
.br
.RI "\fIprint to allocated string\&. \fP"
.ti -1c
.RI "int \fBvasprintf\fP (char **strp, const char *fmt, va_list args)"
.br
.RI "\fIprint to allocated string\&. \fP"
.ti -1c
.RI "int \fBvasprintf_s\fP (char **strp, const char *fmt, va_list args)"
.br
.RI "\fIPrint to allocated string in secure mode\&. \fP"
.ti -1c
.RI "int \fBputchar\fP (int ch)"
.br
.RI "\fIwrites a character to log\&. \fP"
.ti -1c
.RI "int \fBputs\fP (const char *s)"
.br
.RI "\fIwrites the string s and a trailing newline to log(dmesg)\&. \fP"
.ti -1c
.RI "int \fBvsscanf\fP (const char *buffer, const char *fmt, va_list args)"
.br
.RI "\fIvsscanf unformat a buffer into a list of arguments\&. \fP"
.ti -1c
.RI "\fBerrno_t\fP \fBmemcpy_s\fP (void *restrict dest, rsize_t dest_max, const void *restrict src, rsize_t n)"
.br
.RI "\fICheck arguments and copy \fCsrc\fP sized memory area to \fCdest\fP\&. Memory must not be overlapped\&. To copy overlapped area use \fBmemmove_s()\fP function\&. \fP"
.ti -1c
.RI "\fBerrno_t\fP \fBmemmove_s\fP (void *dest, rsize_t dest_max, const void *src, rsize_t n)"
.br
.RI "\fICheck arguments and copy \fCsrc\fP sized memory area to \fCdest\fP\&. Memory may be overlapped\&. \fP"
.ti -1c
.RI "\fBerrno_t\fP \fBmemset_s\fP (void *block, rsize_t block_max, int c, rsize_t n)"
.br
.RI "\fICheck arguments and fill \fCn\fP bytes of \fCblock\fP sized memory with \fCc\fP constant value\&. \fP"
.ti -1c
.RI "size_t \fBstrnlen_s\fP (const char *s, size_t s_max)"
.br
.RI "\fICheck arguments and calculate the length of the \fCs\fP fixed-size string, excluding the terminating null byte ('\\0')\&. \fP"
.ti -1c
.RI "\fBerrno_t\fP \fBstrcpy_s\fP (char *restrict dest, rsize_t dest_max, const char *restrict src)"
.br
.RI "\fICheck arguments and copy the \fCsrc\fP string, including the terminating null byte ('\\0'), to the \fCdest\fP sized buffer\&. If \fCn\fP is bigger than size of \fCsrc\fP then the remaining characters (after '\\0') are unspecified\&. \fP"
.ti -1c
.RI "\fBerrno_t\fP \fBstrncpy_s\fP (char *restrict dest, rsize_t dest_max, const char *restrict src, rsize_t n)"
.br
.RI "\fICheck arguments and copy at most \fCn\fP bytes of the \fCsrc\fP string, including the terminating null byte ('\\0') to the \fCdest\fP sized buffer\&. \fP"
.ti -1c
.RI "\fBerrno_t\fP \fBstrcat_s\fP (char *restrict dest, rsize_t dest_max, const char *restrict src)"
.br
.RI "\fICheck arguments and append the \fCsrc\fP string to the \fCdest\fP string, overwriting the terminating null byte ('\\0') at the end of \fCdest\fP, and add a terminating null byte\&. \fP"
.ti -1c
.RI "\fBerrno_t\fP \fBstrncat_s\fP (char *restrict dest, rsize_t dest_max, const char *restrict src, rsize_t n)"
.br
.RI "\fICheck arguments and append at most \fCn\fP bytes of \fCsrc\fP string to the \fCdest\fP string, overwriting the terminating null byte ('\\0') at the end of dest and then adds a terminating null byte\&. \fP"
.ti -1c
.RI "\fBerrno_t\fP \fBstrerror_s\fP (char *buf, rsize_t bufmax, \fBerrno_t\fP errnum)"
.br
.RI "\fICheck arguments and return a pointer to a \fCbuf\fP string that describes the \fCerrnum\fP error code\&. \fP"
.ti -1c
.RI "void * \fBmemcpy\fP (void *dest, const void *src, size_t n)"
.br
.RI "\fICopy memory area from \fCsrc\fP to \fCdst\fP\&. The memory must not overlap\&. To copy overlapped area use \fBmemmove()\fP function\&. \fP"
.ti -1c
.RI "void * \fBmemmove\fP (void *dest, const void *src, size_t n)"
.br
.RI "\fICopy memory area from \fCsrc\fP to \fCdest\fP\&. The memory may overlap\&. \fP"
.ti -1c
.RI "int \fBmemcmp\fP (const void *s1, const void *s2, size_t n)"
.br
.RI "\fICompare fist \fCn\fP bytes of memory pointed by \fCs1\fP and \fCs2\fP\&. \fP"
.ti -1c
.RI "void * \fBmemset\fP (void *block, int c, size_t size)"
.br
.RI "\fIFill \fCsize\fP bytes with a constant value\&. \fP"
.ti -1c
.RI "size_t \fBstrlen\fP (const char *s)"
.br
.RI "\fICalculate the length of the string \fCs\fP, excluding the terminating null byte ('\\0')\&. \fP"
.ti -1c
.RI "size_t \fBstrnlen\fP (const char *s, size_t n)"
.br
.RI "\fICalculate the length of the fixed-size string \fCs\fP, excluding the terminating null byte ('\\0')\&. \fP"
.ti -1c
.RI "char * \fBstrcpy\fP (char *dest, const char *src)"
.br
.RI "\fICopy the string pointed to by \fCsrc\fP, including the terminating null byte ('\\0'), to the buffer pointed to by \fCdest\fP\&. \fP"
.ti -1c
.RI "char * \fBstrncpy\fP (char *dest, const char *src, size_t n)"
.br
.RI "\fICopy at most \fCn\fP bytes of the string pointed to by \fCsrc\fP, including the terminating null byte ('\\0'), to the buffer pointed to by \fCdest\fP\&. \fP"
.ti -1c
.RI "char * \fBstrdup\fP (const char *s)"
.br
.RI "\fIReturn a pointer to a new string which is a duplicate of the string \fCs\fP\&. Memory for the new string is obtained with \fC\fBmalloc()\fP\fP\&. \fP"
.ti -1c
.RI "char * \fBstrstr\fP (const char *text, const char *pattern)"
.br
.RI "\fIFind the first occurrence of the substring \fCpattern\fP in the string \fCtext\fP\&. The terminating null bytes ('\\0') are not compared\&. \fP"
.ti -1c
.RI "char * \fBstrncat\fP (char *dest, const char *src, size_t n)"
.br
.RI "\fIAppend the \fCsrc\fP string to the \fCdest\fP string, overwriting the terminating null byte ('\\0') at the end of dest, and then adds a terminating null byte\&. \fP"
.ti -1c
.RI "size_t \fBstrlcat\fP (char *dest, const char *src, size_t n)"
.br
.RI "\fIAppend the NUL-terminated string \fCsrc\fP to the end of \fCdest\fP string, overwriting the terminating null byte ('\\0') at the end of dest, and guarantee to NUL-terminate the result\&. \fP"
.ti -1c
.RI "char * \fBstrcat\fP (char *dest, const char *src)"
.br
.RI "\fIAppend the \fCsrc\fP string to the \fCdest\fP string, overwriting the terminating null byte ('\\0') at the end of dest, and then adds a terminating null byte\&. \fP"
.ti -1c
.RI "int \fBstrcmp\fP (const char *s1, const char *s2)"
.br
.RI "\fICompare the two strings \fCs1\fP and \fCs2\fP\&. \fP"
.ti -1c
.RI "int \fBstrncmp\fP (const char *s1, const char *s2, size_t n)"
.br
.RI "\fICompare at most \fCn\fP bytes of two strings \fCs1\fP and \fCs2\fP\&. \fP"
.ti -1c
.RI "char * \fBstrrchr\fP (const char *s, int c)"
.br
.RI "\fIFind last occurence of character \fCc\fP in string \fCs\fP\&. \fP"
.ti -1c
.RI "const char * \fBstrerror\fP (int errnum)"
.br
.RI "\fIReturn a pointer to a string that describes the error code passed in the argument \fCerrnum\fP\&. \fP"
.ti -1c
.RI "void * \fBmemchr\fP (const void *s, int c, size_t n)"
.br
.RI "\fIFind a character in an area of memory\&. \fP"
.ti -1c
.RI "char * \fBstrchr\fP (const char *s, int c)"
.br
.RI "\fIFind first occurence of character \fCc\fP in string \fCs\fP\&. \fP"
.ti -1c
.RI "char * \fBstrchrnul\fP (const char *s, int c)"
.br
.RI "\fIFind first occurence of character \fCc\fP in string \fCs\fP\&. \fP"
.ti -1c
.RI "size_t \fBstrspn\fP (const char *s, const char *\fBaccept\fP)"
.br
.RI "\fICalculate the length (in bytes) of the initial segment of s which consists entirely of bytes in accept\&. \fP"
.ti -1c
.RI "size_t \fBstrcspn\fP (const char *s, const char *reject)"
.br
.RI "\fICalculate the length of the initial segment of s which consists entirely of bytes not in reject\&. \fP"
.ti -1c
.RI "char * \fBstrtok\fP (char *str, const char *delim)"
.br
.RI "\fIFunction breaks a string into a sequence of zero or more nonempty tokens\&. \fP"
.ti -1c
.RI "char * \fBstrtok_r\fP (char *_restrict_ s, const char *_restrict_ sep, char **_restrict_ p)"
.br
.RI "\fIFunction breaks a string into a sequence of zero or more nonempty tokens\&. \fP"
.ti -1c
.RI "int \fBstrerror_r\fP (int errnum, char *buf, size_t buflen)"
.br
.RI "\fIReturns the error string in the user-supplied \fCbuf\fP of length \fCbuflen\fP\&. XSI-compliant version\&. \fP"
.ti -1c
.RI "int \fBioctl\fP (int fd, int request, unsigned long data)"
.br
.RI "\fIManipulates the underlying device parameters of special files\&. \fP"
.ti -1c
.RI "void * \fBmmap\fP (void *addr, size_t len, int prot, int flags, int fd, \fBoff_t\fP offset)"
.br
.ti -1c
.RI "int \fBmunmap\fP (void *addr, size_t length)"
.br
.ti -1c
.RI "int \fBnanosleep\fP (struct timespec *req, struct timespec *rem)"
.br
.RI "\fI\fBnanosleep()\fP suspends the execution of the calling thread until either at least the time specified in \fC*req\fP has elapsed, or the delivery of a signal that triggers the invocation of a handler in the calling thread or that terminates the process\&. If the call is interrupted by a signal handler, \fBnanosleep()\fP returns -1, sets \fBerrno\fP to \fBEINTR\fP, and writes the remaining time into the structure pointed to by rem unless rem is NULL\&. The value of \fC*req\fP can then be used to call \fBnanosleep()\fP again and complete the specified pause\&. \fP"
.ti -1c
.RI "int \fBclock_gettime\fP (clockid_t clk_id, struct timespec *ts)"
.br
.RI "\fIThe function retrieves the time of the specified clock \fCclk_id\fP\&. This function is non-blocking, except CLOCK_REE case\&. In this case function can sleep and can be interrupted with -1 result and EINTR errno\&. \fP"
.ti -1c
.RI "\fBtime_t\fP \fBtime\fP (\fBtime_t\fP *time)"
.br
.RI "\fIGet the current calendar time as a value of type \fBtime_t\fP\&. \fP"
.ti -1c
.RI "int \fBalarm\fP (unsigned int seconds)"
.br
.RI "\fISet the real-time timer to expire in \fCseconds\fP seconds\&. \fP"
.ti -1c
.RI "int \fBsetitimer\fP (int which, const struct itimerval *new_value, struct itimerval *old_value)"
.br
.RI "\fISet value of an interval timer\&. \fP"
.ti -1c
.RI "int \fBgetitimer\fP (int which, struct itimerval *curr_value)"
.br
.RI "\fIGet value of an interval timer\&. \fP"
.ti -1c
.RI "unsigned int \fBarm_timer_get_frequency\fP (void)"
.br
.RI "\fIThe function retrieves the frequency of ARM timer\&. \fP"
.ti -1c
.RI "void \fBtimeadd\fP (const struct timespec *a, const struct timespec *b, struct timespec *res)"
.br
.RI "\fIThe function adds two dates\&. \fP"
.ti -1c
.RI "void \fBtimesub\fP (const struct timespec *a, const struct timespec *b, struct timespec *res)"
.br
.RI "\fIThe function subtracts two dates\&. \fP"
.ti -1c
.RI "int64_t \fBtimespec_to_ms\fP (const struct timespec *a)"
.br
.RI "\fIThe function converts time from timespec format to milliseconds\&. \fP"
.ti -1c
.RI "uint64_t \fBtimespec_to_nsec\fP (const struct timespec *a)"
.br
.RI "\fIThe function converts time from timespec format to nanoseconds\&. \fP"
.ti -1c
.RI "void \fBms_to_timespec\fP (int64_t t, struct timespec *a)"
.br
.RI "\fIThe function converts time in milliseconds to to timespec format\&. \fP"
.ti -1c
.RI "void \fB_exit\fP (int status)"
.br
.RI "\fITerminate the calling process 'immediately'\&. Any open file descriptors belonging to the process are closed; process's parent is sent a SIGCHLD signal\&. \fP"
.ti -1c
.RI "void \fB_exit_thread\fP (unsigned long status)"
.br
.RI "\fITerminate the calling thread 'immediately'\&. \fP"
.ti -1c
.RI "int \fBprofil\fP (unsigned short *buf, size_t bufsiz, size_t offset, unsigned int scale)"
.br
.RI "\fIProvide a means to find out in what areas your program spends most of its time\&. The argument \fCbuf\fP points to \fCbufsiz\fP bytes of core\&. Every virtual 10 milliseconds, the user's program counter (PC) is examined: \fCoffset\fP is subtracted and the result is multiplied by \fCscale\fP and divided by 65536\&. If the resulting value is less than \fCbufsiz\fP, then the corresponding entry in \fCbuf\fP is incremented\&. If \fCbuf\fP is NULL, profiling is disabled\&. \fP"
.ti -1c
.RI "\fBpid_t\fP \fBgetpid\fP (void)"
.br
.RI "\fIReturn the process ID of the calling process\&. \fP"
.ti -1c
.RI "\fBpid_t\fP \fBgettid\fP (void)"
.br
.RI "\fIReturn the thread ID of the calling thread\&. \fP"
.ti -1c
.RI "int \fBgetcpu\fP (void)"
.br
.RI "\fIReturn the number of CPU on which current thread is performed\&. \fP"
.ti -1c
.RI "int \fBgetcluster\fP (void)"
.br
.RI "\fIReturn the cluster id on which current thread is performed\&. \fP"
.ti -1c
.RI "int \fBunlink\fP (const char *pathname)"
.br
.RI "\fIRemove a link to a file\&. \fP"
.ti -1c
.RI "int \fBftruncate\fP (int fd, int size)"
.br
.RI "\fICause file referenced by \fCfd\fP to be truncated to a \fCsize\fP of precisely length bytes\&. \fP"
.ti -1c
.RI "int \fBclose\fP (int fd)"
.br
.RI "\fIDeallocate the file descriptor indicated by \fCfd\fP\&. To deallocate means to make the file descriptor available for return by subsequent calls to \fBopen()\fP or other functions that allocate file descriptors\&. All outstanding record locks owned by the process on the file associated with the file descriptor shall be removed (that is, unlocked)\&. \fP"
.ti -1c
.RI "\fBssize_t\fP \fBread\fP (int fd, void *buf, size_t count)"
.br
.RI "\fIAttempt to read \fCcount\fP bytes from the file associated with the open file descriptor, \fCfd\fP, into the buffer pointed to by \fCbuf\fP\&. \fP"
.ti -1c
.RI "\fBssize_t\fP \fBwrite\fP (int fd, const void *buf, size_t count)"
.br
.RI "\fIAttempt to write \fCcount\fP bytes from buffer pointed to by \fCbuf\fP to the file associated with the open file descriptor, \fCfd\fP\&. \fP"
.ti -1c
.RI "int \fBfstat\fP (int fd, struct \fBstat\fP *buf)"
.br
.RI "\fIGet status of a file with a descriptor \fCfd\fP\&. \fP"
.ti -1c
.RI "int \fBstat\fP (const char *pathname, struct \fBstat\fP *buf)"
.br
.RI "\fIGet status of a file \fCpathname\fP\&. \fP"
.ti -1c
.RI "int \fBlseek\fP (int fd, int offset, int whence)"
.br
.RI "\fIReposition read/write file offset\&. \fP"
.ti -1c
.RI "void \fBuuid_unparse\fP (const \fBuuid_t\fP *uu, char *out)"
.br
.RI "\fIConvert binary representation of UUID to string\&. \fP"
.ti -1c
.RI "void \fBuuid_unparse_upper\fP (const \fBuuid_t\fP *uu, char *out)"
.br
.RI "\fIConvert binary representation of UUID to string\&. \fP"
.ti -1c
.RI "int \fBuuid_parse\fP (const char *in, \fBuuid_t\fP *uu)"
.br
.RI "\fIConvert an input UUID string into binary representation\&. \fP"
.ti -1c
.RI "void \fBuuid_generate\fP (\fBuuid_t\fP *out)"
.br
.RI "\fIThe \fCuuid_generate\fP function creates a new universally unique identifier (UUID)\&. \fP"
.ti -1c
.RI "int \fBuuid_is_null\fP (const \fBuuid_t\fP *uu)"
.br
.RI "\fICheck if UUID is null\&. \fP"
.ti -1c
.RI "void \fBuuid_clear\fP (\fBuuid_t\fP *uu)"
.br
.RI "\fIset value to zero UUID\&. \fP"
.ti -1c
.RI "int \fBuuid_compare\fP (const \fBuuid_t\fP *uu1, const \fBuuid_t\fP *uu2)"
.br
.RI "\fICompare the two supplied uuid variables \fCuu1\fP and \fCuu2\fP to each other\&. \fP"
.ti -1c
.RI "\fBconstraint_handler_t\fP \fBset_constraint_handler_s\fP (\fBconstraint_handler_t\fP handler)"
.br
.RI "\fISet the \fChandler\fP to be handler\&. \fP"
.ti -1c
.RI "void \fBinvoke_constraint_handler_s\fP (const char *msg, const char *file, const char *function, uint32_t line, \fBerrno_t\fP error)"
.br
.RI "\fIPrint \fCmsg\fP if constraint was caused\&. \fP"
.ti -1c
.RI "void \fBabort_handler_s\fP (const char *restrict msg, void *restrict ptr, \fBerrno_t\fP error)"
.br
.RI "\fIAbort system if constraint was caused\&. \fP"
.ti -1c
.RI "void \fBignore_handler_s\fP (const char *restrict msg, void *restrict ptr, \fBerrno_t\fP error)"
.br
.RI "\fIReturns to the caller without performing any actions\&. \fP"
.ti -1c
.RI "void \fBexit\fP (int status)"
.br
.RI "\fICause normal process termination and return the value of \fCstatus\fP & 0377 to the parent\&. \fP"
.ti -1c
.RI "static __inline__ int \fBabs\fP (int j)"
.br
.RI "\fICompute the absolute value of the integer argument \fC__n\fP\&. \fP"
.ti -1c
.RI "void \fBabort\fP (void)"
.br
.RI "\fICause abnormal process termination\&. \fP"
.ti -1c
.RI "long \fBstrtol\fP (const char *nptr, char **endptr, int base)"
.br
.RI "\fIConvert the initial part of the string in \fCnptr\fP to a long integer value according to the given \fCbase\fP, which must be between 2 and 36 inclusive, or be the special value 0\&. \fP"
.ti -1c
.RI "unsigned long \fBstrtoul\fP (const char *cp, char **endp, int base)"
.br
.RI "\fIConvert the initial part of the string in \fCnptr\fP to a unsigned long integer value according to the given \fCbase\fP, which must be between 2 and 36 inclusive, or be the special value 0\&. \fP"
.ti -1c
.RI "double \fBstrtod\fP (const char *nptr, char **endptr)"
.br
.RI "\fIthe initial portion of the string pointed to by \fCnptr\fP to double\&. \fP"
.ti -1c
.RI "long long \fBstrtoll\fP (const char *nptr, char **endptr, int base)"
.br
.RI "\fIConvert the initial part of the string in \fCnptr\fP to a long long integer value according to the given \fCbase\fP, which must be between 2 and 36 inclusive, or be the special value 0\&. \fP"
.ti -1c
.RI "unsigned long long \fBstrtoull\fP (const char *cp, char **endp, int base)"
.br
.RI "\fIConvert the initial part of the string in \fCnptr\fP to a unsigned long long integer value according to the given \fCbase\fP, which must be between 2 and 36 inclusive, or be the special value 0\&. \fP"
.ti -1c
.RI "float \fBstrtof\fP (const char *nptr, char **endptr)"
.br
.RI "\fIthe initial portion of the string pointed to by \fCnptr\fP to float\&. \fP"
.ti -1c
.RI "long double \fBstrtold\fP (const char *nptr, char **endptr)"
.br
.RI "\fIthe initial portion of the string pointed to by \fCnptr\fP to long double\&. \fP"
.ti -1c
.RI "int \fBatexit\fP (void(*func)(void))"
.br
.RI "\fIRegister the given function to be called at normal process termination\&. \fP"
.ti -1c
.RI "void * \fBmalloc\fP (size_t size)"
.br
.RI "\fIAllocate \fCsize\fP bytes and return a pointer to the allocated memory\&. \fP"
.ti -1c
.RI "void \fBfree\fP (void *ptr)"
.br
.RI "\fIFree the memory space pointer to by \fCptr\fP\&. \fP"
.ti -1c
.RI "void * \fBcalloc\fP (size_t nmemb, size_t size)"
.br
.RI "\fIAllocate memory for an array of \fCnmemb\fP elements of \fCsize\fP bytes each and return a pointer to the allocated memory\&. \fP"
.ti -1c
.RI "void * \fBrealloc\fP (void *ptr, size_t size)"
.br
.RI "\fIChange the size of the memory block pointed to by \fCptr\fP to \fCsize\fP bytes\&. \fP"
.ti -1c
.RI "void \fBqsort\fP (void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *))"
.br
.RI "\fISort an array\&. \fP"
.ti -1c
.RI "void \fBqsort_r\fP (void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *, void *), void *arg)"
.br
.RI "\fISort an array\&. \fP"
.in -1c
.SS "Variables"

.in +1c
.ti -1c
.RI "FILE * \fBstdin\fP"
.br
.RI "\fIStandard input stream (stub)\&. \fP"
.ti -1c
.RI "FILE * \fBstdout\fP"
.br
.RI "\fIStandard output stream\&. \fP"
.ti -1c
.RI "FILE * \fBstderr\fP"
.br
.RI "\fIStandard error stream\&. \fP"
.in -1c
.SH "Detailed Description"
.PP 

.SH "Data Structure Documentation"
.PP 
.SH "struct cpu_set_t"
.PP 
cpu set structure 
.PP
\fBData Fields:\fP
.RS 4
unsigned long \fIbits[((((1)*(32))+BITS_PER_LONG\-1)/BITS_PER_LONG)]\fP 
.br
.PP
.RE
.PP
.SH "struct tm"
.PP 
time structure 
.PP
\fBData Fields:\fP
.RS 4
int \fItm_hour\fP Hours\&. [0-23] 
.br
.PP
int \fItm_isdst\fP DST\&. [-1/0/1] 
.br
.PP
int \fItm_mday\fP Day\&. [1-31] 
.br
.PP
int \fItm_min\fP Minutes\&. [0-59] 
.br
.PP
int \fItm_mon\fP Month\&. [0-11] 
.br
.PP
int \fItm_sec\fP Seconds\&. [0-60] (1 leap second) 
.br
.PP
int \fItm_wday\fP Day of week\&. [0-6] 
.br
.PP
int \fItm_yday\fP Days in year\&.[0-365] 
.br
.PP
int \fItm_year\fP Year - 1900\&. 
.br
.PP
.RE
.PP
.SH "struct __uuid_t"
.PP 
wrapper for uuid type\&. 
.PP
\fBData Fields:\fP
.RS 4
uint8_t \fIclockSeqAndNode[8]\fP unique identifier for specific system\&. 
.br
.PP
uint16_t \fItimeHiAndVersion\fP time specific part of UUID and version number\&. 
.br
.PP
uint32_t \fItimeLow\fP time specific part of UUID\&. 
.br
.PP
uint16_t \fItimeMid\fP time specific part of UUID\&. 
.br
.PP
.RE
.PP
.SH "Macro Definition Documentation"
.PP 
.SS "#define __CPUMASK(cpu)   (1L << ((cpu) % BITS_PER_LONG))"

.PP
\fC#include <\fBsched\&.h\fP>\fPThe value of cpu mask 
.SS "#define _POSIX_THREAD_KEYS_MAX   12"

.PP
\fC#include <\fBlimits\&.h\fP>\fPThe number of data keys per process\&.
.PP
POSIX requires to support at least 128 keys (Linux supports up to 1024), but we can't affort such luxury 
.SS "#define assert(expr)   __assert__(expr, __FILE__, __LINE__)"

.PP
\fC#include <\fBassert\&.h\fP>\fP
.PP
Abort the program if assertion is false\&. 
.PP
\fBParameters:\fP
.RS 4
\fIexpr\fP expression to check 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
if \fCexpr\fP == \fCtrue\fP - do nothing
.IP "\(bu" 2
if \fCexpr\fP != \fCtrue\fP - in debug mode terminates application 
.PP
.RE
.PP

.SS "#define AUTO_BUFFER_SIZE   1024"

.PP
\fC#include <\fBprint_no_alloc\&.h\fP>\fPBuffer size\&. 
.SS "#define BIT_PER_CPU   (1)"

.PP
\fC#include <\fBsched\&.h\fP>\fPThe number cpu bits 
.SS "#define BITMAP_ELT(cpu)   ((cpu) / BITS_PER_LONG)"

.PP
\fC#include <\fBsched\&.h\fP>\fPThe bit map element 
.SS "#define BITS_TO_CPU_MASK(bits)   (((bits) + BITS_PER_LONG \- 1) / BITS_PER_LONG)"

.PP
\fC#include <\fBsched\&.h\fP>\fPThe number bits of cpu mask 
.SS "#define CHAR_BIT   8"

.PP
\fC#include <\fBlimits\&.h\fP>\fPNumber of bits in a type \fCchar\fP 
.SS "#define CPU_CLR(cpu, cpusetp)"

.PP
\fC#include <\fBsched\&.h\fP>\fP\fBValue:\fP
.PP
.nf
({                                                                      \
        size_t __cpu = (cpu);                                               \
        __cpu < CHAR_BIT * (sizeof(cpu_set_t))                              \
        ? (((cpusetp)->bits)[BITMAP_ELT(__cpu)] &= ~__CPUMASK (__cpu))      \
        : 0;                                                                \
    })
.fi
The macros for clear cpu 
.SS "#define CPU_ISSET(cpu, cpusetp)"

.PP
\fC#include <\fBsched\&.h\fP>\fP\fBValue:\fP
.PP
.nf
({                                                                       \
        size_t __cpu = (cpu);                                               \
        __cpu < CHAR_BIT * (sizeof(cpu_set_t))                              \
        ? ((((cpusetp)->bits)[BITMAP_ELT(__cpu)] & __CPUMASK (__cpu))) != 0 \
        : 0;                                                                \
    })
.fi
The macros for check is spu is set 
.SS "#define CPU_SET(cpu, cpusetp)"

.PP
\fC#include <\fBsched\&.h\fP>\fP\fBValue:\fP
.PP
.nf
({                                                                   \
        size_t __cpu = (cpu);                                           \
        __cpu < CHAR_BIT * (sizeof(cpu_set_t))                          \
        ? (((cpusetp)->bits)[BITMAP_ELT(__cpu)] |= __CPUMASK (__cpu))   \
        : 0;                                                            \
    })
.fi
The macros for set cpu to cpusetp 
.SS "#define CPU_ZERO(cpusetp)"

.PP
\fC#include <\fBsched\&.h\fP>\fP\fBValue:\fP
.PP
.nf
({                                                                  \
        size_t i;                                                       \
        size_t imax = (sizeof(cpu_set_t)) / sizeof (unsigned long);     \
        unsigned long *bits = (cpusetp)->bits;                          \
        for (i = 0; i < imax; ++i)                                      \
            bits[i] = 0;                                                \
    })
.fi
The macros for set cpu to zero 
.SS "#define DECLARE_BITMAP(name, bits)   unsigned long name[\fBBITS_TO_CPU_MASK\fP(bits)]"

.PP
\fC#include <\fBsched\&.h\fP>\fPThe short type of bitmap 
.SS "#define E2BIG   7	/* Argument list too long */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPArgument list too long\&. 
.SS "#define EACCES   13	/* Permission denied */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPPermission denied\&. 
.SS "#define EADDRINUSE   98	/* Address already in use */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPAddress already in use\&. 
.SS "#define EADDRNOTAVAIL   99	/* Cannot assign requested address */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPCannot assign requested address\&. 
.SS "#define EADV   68	/* Advertise error */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPAdvertise error\&. 
.SS "#define EAFNOSUPPORT   97	/* Address family not supported by protocol */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPAddress family not supported by protocol\&. 
.SS "#define EAGAIN   11	/* Try again */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPTry again\&. 
.SS "#define EALREADY   114	/* Operation already in progress */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPOperation already in progress\&. 
.SS "#define EBADE   52	/* Invalid exchange */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPInvalid exchange\&. 
.SS "#define EBADF   9	/* Bad file number */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPBad file number\&. 
.SS "#define EBADFD   77	/* File descriptor in bad state */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPFile descriptor in bad state\&. 
.SS "#define EBADMSG   74	/* Not a data message */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNot a data message\&. 
.SS "#define EBADR   53	/* Invalid request descriptor */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPInvalid request descriptor\&. 
.SS "#define EBADRQC   56	/* Invalid request code */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPInvalid request code\&. 
.SS "#define EBADSLT   57	/* Invalid slot */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPInvalid slot\&. 
.SS "#define EBFONT   59	/* Bad font file format */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPBad font file format\&. 
.SS "#define EBUSY   16	/* Device or resource busy */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPDevice or resource busy\&. 
.SS "#define ECANCELED   125	/* Operation canceled */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPOperation canceled\&. 
.SS "#define ECHILD   10	/* No child processes */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo child processes\&. 
.SS "#define ECHRNG   44	/* Channel number out of range */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPChannel number out of range\&. 
.SS "#define ECOMM   70	/* Communication error on \fBsend\fP */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPCommunication error on send\&. 
.SS "#define ECONNABORTED   103	/* Software caused connection \fBabort\fP */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPSoftware caused connection abort\&. 
.SS "#define ECONNREFUSED   111	/* Connection refused */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPConnection refused\&. 
.SS "#define ECONNRESET   104	/* Connection reset by peer */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPConnection reset by peer\&. 
.SS "#define EDEADLK   35	/* Resource deadlock would occur */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPResource deadlock would occur\&. 
.SS "#define EDEADLOCK   \fBEDEADLK\fP"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPResource deadlock would occur\&. 
.SS "#define EDESTADDRREQ   89	/* Destination address required */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPDestination address required\&. 
.SS "#define EDOM   33	/* Math argument out of domain of func */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPMath argument out of domain of func\&. 
.SS "#define EDOTDOT   73	/* RFS specific error */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPRFS specific error\&. 
.SS "#define EDQUOT   122	/* Quota exceeded */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPQuota exceeded\&. 
.SS "#define EEXIST   17	/* File exists */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPFile exists\&. 
.SS "#define EFAULT   14	/* Bad address */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPBad address\&. 
.SS "#define EFBIG   27	/* File too large */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPFile too large\&. 
.SS "#define EHOSTDOWN   112	/* Host is down */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPHost is down\&. 
.SS "#define EHOSTUNREACH   113	/* No route to host */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo route to host\&. 
.SS "#define EIDRM   43	/* Identifier removed */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPIdentifier removed\&. 
.SS "#define EILSEQ   84	/* Illegal byte sequence */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPIllegal byte sequence\&. 
.SS "#define EINPROGRESS   115	/* Operation now in progress */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPOperation now in progress\&. 
.SS "#define EINTR   4	/* Interrupted system call */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPInterrupted system call\&. 
.SS "#define EINVAL   22	/* Invalid argument */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPInvalid argument\&. 
.SS "#define EIO   5	/* I/O error */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPI/O error\&. 
.SS "#define EISCONN   106	/* Transport endpoint is already connected */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPTransport endpoint is already connected\&. 
.SS "#define EISDIR   21	/* Is a directory */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPIs a directory\&. 
.SS "#define EISNAM   120	/* Is a named type file */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPIs a named type file\&. 
.SS "#define EL2HLT   51	/* Level 2 halted */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPLevel 2 halted\&. 
.SS "#define EL2NSYNC   45	/* Level 2 not synchronized */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPLevel 2 not synchronized\&. 
.SS "#define EL3HLT   46	/* Level 3 halted */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPLevel 3 halted\&. 
.SS "#define EL3RST   47	/* Level 3 reset */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPLevel 3 reset\&. 
.SS "#define ELIBACC   79	/* Can not access a needed shared library */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPCan not access a needed shared library\&. 
.SS "#define ELIBBAD   80	/* Accessing a corrupted shared library */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPAccessing a corrupted shared library\&. 
.SS "#define ELIBEXEC   83	/* Cannot exec a shared library directly */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPCannot exec a shared library directly\&. 
.SS "#define ELIBMAX   82	/* Attempting to link in too many shared libraries */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPAttempting to link in too many shared libraries\&. 
.SS "#define ELIBSCN   81	/* \&.lib section in a\&.out corrupted */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fP\&.lib section in a\&.out corrupted\&. 
.SS "#define ELNRNG   48	/* Link number out of range */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPLink number out of range\&. 
.SS "#define ELOOP   40	/* Too many symbolic links encountered */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPToo many symbolic links encountered\&. 
.SS "#define EMFILE   24	/* Too many \fBopen\fP files */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPToo many open files\&. 
.SS "#define EMLINK   31	/* Too many links */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPToo many links\&. 
.SS "#define EMSGSIZE   90	/* Message too long */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPMessage too long\&. 
.SS "#define EMULTIHOP   72	/* Multihop attempted */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPMultihop attempted\&. 
.SS "#define ENAMETOOLONG   36	/* File name too long */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPFile name too long\&. 
.SS "#define ENAVAIL   119	/* No XENIX semaphores available */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo XENIX semaphores available\&. 
.SS "#define ENETDOWN   100	/* Network is down */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNetwork is down\&. 
.SS "#define ENETRESET   102	/* Network dropped connection because of reset */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNetwork dropped connection because of reset\&. 
.SS "#define ENETUNREACH   101	/* Network is unreachable */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNetwork is unreachable\&. 
.SS "#define ENFILE   23	/* File table overflow */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPFile table overflow\&. 
.SS "#define ENOANO   55	/* No anode */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo anode\&. 
.SS "#define ENOBUFS   105	/* No buffer space available */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo buffer space available\&. 
.SS "#define ENOCSI   50	/* No CSI structure available */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo CSI structure available\&. 
.SS "#define ENODATA   61	/* No data available */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo data available\&. 
.SS "#define ENODEV   19	/* No such device */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo such device\&. 
.SS "#define ENOENT   2	/* No such file or directory */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo such file or directory\&. 
.SS "#define ENOEXEC   8	/* Exec format error */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPExec format error\&. 
.SS "#define ENOKEY   126	/* Required key not available */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPRequired key not available\&. 
.SS "#define ENOLCK   37	/* No record locks available */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo record locks available\&. 
.SS "#define ENOLINK   67	/* Link has been severed */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPLink has been severed\&. 
.SS "#define ENOMEM   12	/* Out of memory */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPOut of memory\&. 
.SS "#define ENOMSG   42	/* No message of desired type */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo message of desired type\&. 
.SS "#define ENONET   64	/* Machine is not on the network */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPMachine is not on the network\&. 
.SS "#define ENOPKG   65	/* Package not installed */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPPackage not installed\&. 
.SS "#define ENOPROTOOPT   92	/* Protocol not available */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPProtocol not available\&. 
.SS "#define ENOSPC   28	/* No space left on device */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo space left on device\&. 
.SS "#define ENOSR   63	/* Out of streams resources */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPOut of streams resources\&. 
.SS "#define ENOSTR   60	/* Device not a stream */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPDevice not a stream\&. 
.SS "#define ENOSYS   38	/* Function not implemented */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPFunction not implemented\&. 
.SS "#define ENOTBLK   15	/* Block device required */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPBlock device required\&. 
.SS "#define ENOTCONN   107	/* Transport endpoint is not connected */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPTransport endpoint is not connected\&. 
.SS "#define ENOTDIR   20	/* Not a directory */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNot a directory\&. 
.SS "#define ENOTEMPTY   39	/* Directory not empty */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPDirectory not empty\&. 
.SS "#define ENOTNAM   118	/* Not a XENIX named type file */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNot a XENIX named type file\&. 
.SS "#define ENOTSOCK   88	/* Socket operation on non\-\fBsocket\fP */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPSocket operation on non-socket\&. 
.SS "#define ENOTTY   25	/* Not a typewriter */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNot a typewriter\&. 
.SS "#define ENOTUNIQ   76	/* Name not unique on network */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPName not unique on network\&. 
.SS "#define ENXIO   6	/* No such device or address */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo such device or address\&. 
.SS "#define EOF   (\-1)"

.PP
\fC#include <\fBstdio\&.h\fP>\fPEOF - symbol signifying End Of File\&. 
.SS "#define EOPNOTSUPP   95	/* Operation not supported on transport endpoint */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPOperation not supported on transport endpoint\&. 
.SS "#define EOVERFLOW   75	/* Value too large for defined data type */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPValue too large for defined data type\&. 
.SS "#define EPERM   1	/* Operation not permitted */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPOperation not permitted\&. 
.SS "#define EPFNOSUPPORT   96	/* Protocol family not supported */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPProtocol family not supported\&. 
.SS "#define EPIPE   32	/* Broken pipe */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPBroken pipe\&. 
.SS "#define EPROTO   71	/* Protocol error */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPProtocol error\&. 
.SS "#define EPROTONOSUPPORT   93	/* Protocol not supported */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPProtocol not supported\&. 
.SS "#define EPROTOTYPE   91	/* Protocol wrong type for \fBsocket\fP */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPProtocol wrong type for socket\&. 
.SS "#define ERANGE   34	/* Math result not representable */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPMath result not representable\&. 
.SS "#define EREMCHG   78	/* Remote address changed */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPRemote address changed\&. 
.SS "#define EREMOTE   66	/* Object is remote */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPObject is remote\&. 
.SS "#define EREMOTEIO   121	/* Remote I/O error */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPRemote I/O error\&. 
.SS "#define ERESTART   85	/* Interrupted system call should be restarted */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPInterrupted system call should be restarted\&. 
.SS "#define EROFS   30	/* Read\-only file system */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPRead-only file system\&. 
.SS "#define errno   (*\fBget_errno_addr\fP())"

.PP
\fC#include <\fBerrno\&.h\fP>\fPnumber of last error
.PP
Contains numeric code of last error, list of possible error codes is specified in POSIX\&.1-2001 or in \fBcore/error\&.h\fP file\&. 
.SS "#define ESHUTDOWN   108	/* Cannot \fBsend\fP after transport endpoint shutdown */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPCannot send after transport endpoint shutdown\&. 
.SS "#define ESOCKTNOSUPPORT   94	/* Socket type not supported */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPSocket type not supported\&. 
.SS "#define ESPIPE   29	/* Illegal seek */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPIllegal seek\&. 
.SS "#define ESRCH   3	/* No such process */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPNo such process\&. 
.SS "#define ESRMNT   69	/* Srmount error */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPSrmount error\&. 
.SS "#define ESTALE   116	/* Stale file handle */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPStale file handle\&. 
.SS "#define ESTRPIPE   86	/* Streams pipe error */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPStreams pipe error\&. 
.SS "#define ETIME   62	/* Timer expired */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPTimer expired\&. 
.SS "#define ETIMEDOUT   110	/* Connection timed out */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPConnection timed out\&. 
.SS "#define ETOOMANYREFS   109	/* Too many references: cannot splice */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPToo many references: cannot splice\&. 
.SS "#define ETXTBSY   26	/* Text file busy */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPText file busy\&. 
.SS "#define EUCLEAN   117	/* Structure needs cleaning */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPStructure needs cleaning\&. 
.SS "#define EUNATCH   49	/* Protocol driver not attached */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPProtocol driver not attached\&. 
.SS "#define EUSERS   87	/* Too many users */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPToo many users\&. 
.SS "#define EWOULDBLOCK   \fBEAGAIN\fP	/* Operation would block */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPOperation would block\&. 
.SS "#define EXDEV   18	/* Cross\-device link */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPCross-device link\&. 
.SS "#define EXFULL   54	/* Exchange full */"

.PP
\fC#include <\fBcore/error\&.h\fP>\fPExchange full\&. 
.SS "#define INT_MAX   ((int)(~0U>>1))"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMaximum value for an object of type \fCint\fP\&. Minimum Acceptable Value: 2 147 483 647 
.SS "#define INT_MIN   (\-\fBINT_MAX\fP \- 1)"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMinimum value for an object of type \fCint\fP\&. Maximum Acceptable Value: -2 147 483 647 
.SS "#define LLONG_MAX   ((long long)(~0ULL>>1))"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMaximum value for an object of type \fC long long\fP\&. Minimum Acceptable Value: +9223372036854775807 
.SS "#define LLONG_MIN   ((long long)(\-\fBLLONG_MAX\fP \- 1))"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMinimum value for an object of type \fC long long\fP\&. Maximum Acceptable Value: -9223372036854775807 
.SS "#define LONG_MAX   ((long)(~0UL>>1))"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMaximum value for an object of type \fClong\fP\&. Minimum Acceptable Value: +2 147 483 647 
.SS "#define LONG_MIN   (\-\fBLONG_MAX\fP \- 1)"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMinimum value for an object of type \fClong\fP\&. Maximum Acceptable Value: -2 147 483 647 
.SS "#define M_CACHE_PAGES   1"

.PP
\fC#include <\fBmalloc\&.h\fP>\fPFor setting number of pages that not to be munmapped to reuse them quickly again\&. 
.SS "#define MAP_ANONYMOUS   (1 << 0)"

.PP
\fC#include <\fBcore/mman\&.h\fP>\fPThe mapping is not backed by any file; its contents are initialized to zero\&. 
.SS "#define MAP_FAILED   ((void *)\-1)"

.PP
\fC#include <\fBsys/mman\&.h\fP>\fPError return value from \fBmmap()\fP\&. 
.SS "#define MAP_FIXED   (1 << 2)"

.PP
\fC#include <\fBcore/mman\&.h\fP>\fPDon't interpret \fCaddr\fP as a hint: place the mapping at exactly that address\&. \fCaddr\fP must be a multiple of the page size\&. 
.SS "#define MAP_PHYS_NON_CACHED   (1 << 28)"

.PP
\fC#include <\fBdriver/mem/phys\&.h\fP>\fPMemory will be mapped as non-cached\&. 
.SS "#define MAP_PHYS_NON_SECURE   (1 << 29)"

.PP
\fC#include <\fBdriver/mem/phys\&.h\fP>\fPNon-secure memory region will be mapped\&. 
.SS "#define MAP_POPULATE   (1 << 1)"

.PP
\fC#include <\fBcore/mman\&.h\fP>\fPPopulate (prefault) page tables for a mapping\&. 
.SS "#define MAP_PRIVATE   (1 << 3)"

.PP
\fC#include <\fBcore/mman\&.h\fP>\fPCreate a private copy-on-write mapping\&. Updates to the mapping are not visible to other processes mapping the same file, and are not carried through to the underlying file\&. 
.SS "#define MAP_SHARED   (1 << 4)"

.PP
\fC#include <\fBcore/mman\&.h\fP>\fPShare this mapping\&. Updates to the mapping are visible to other processes that map this file, and are carried through to the underlying file\&. 
.SS "#define MAX_CPUS   (32)"

.PP
\fC#include <\fBsched\&.h\fP>\fPThe maximum cpu number 
.SS "#define NUM_MILLIS_IN_SEC   (1000)"

.PP
\fC#include <\fBtime\&.h\fP>\fPThe number millisecond in second 
.SS "#define NUM_NANOS_IN_MILLI   (1000000L)"

.PP
\fC#include <\fBtime\&.h\fP>\fPThe number nanosecond in millisecond 
.SS "#define NUM_NANOS_IN_SEC   (1000000000ULL)"

.PP
\fC#include <\fBtime\&.h\fP>\fPThe number nanosecond in second 
.SS "#define NUM_NANOS_IN_USEC   (1000)"

.PP
\fC#include <\fBtime\&.h\fP>\fPThe number nanosecond in microsecond 
.SS "#define NUM_SECONDS_IN_MIN   (60)"

.PP
\fC#include <\fBtime\&.h\fP>\fPThe number second in minute 
.SS "#define PGOFF_SHIFT   12"

.PP
\fC#include <\fBcore/mman\&.h\fP>\fPOffset shift\&. 
.SS "#define PHYS_DEV_NAME   'phys://'"

.PP
\fC#include <\fBdriver/mem/phys\&.h\fP>\fPName of device to physical memory access\&. 
.SS "#define PHYS_DEV_NAME_LEN   (sizeof(\fBPHYS_DEV_NAME\fP) \- 1)"

.PP
\fC#include <\fBdriver/mem/phys\&.h\fP>\fPLength of the name of device to physical memory access\&. 
.SS "#define PRId16   __16_PREFIX 'd'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to print the value of type int16_t 
.SS "#define PRId32   'd'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to print the value of type int32_t 
.SS "#define PRId64   __64_PREFIX 'd'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to print the value of type int64_t 
.SS "#define PRIu16   __16_PREFIX 'u'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to print the value of type uint16_t 
.SS "#define PRIu32   'u'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to print the value of type uint32_t 
.SS "#define PRIu64   __64_PREFIX 'u'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to print the value of type uint64_t 
.SS "#define PRIx16   __16_PREFIX 'x'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to scan the 16-bit value in hex 
.SS "#define PRIx32   'x'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to print the 32-bit value in hex 
.SS "#define PRIx64   __64_PREFIX 'x'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to print the 64-bit value in hex 
.SS "#define PROT_EXEC   4"

.PP
\fC#include <\fBcore/mman\&.h\fP>\fPPages may be executed\&. 
.SS "#define PROT_NONE   0"

.PP
\fC#include <\fBcore/mman\&.h\fP>\fPPages may not be accessed\&. 
.SS "#define PROT_READ   1"

.PP
\fC#include <\fBcore/mman\&.h\fP>\fPPages may be read\&. 
.SS "#define PROT_WRITE   2"

.PP
\fC#include <\fBcore/mman\&.h\fP>\fPPages may be written\&. 
.SS "#define PTHREAD_KEYS_MAX   \fB_POSIX_THREAD_KEYS_MAX\fP"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMaximum number of data keys that can be created by a process\&. Minimum Acceptable Value: \fB_POSIX_THREAD_KEYS_MAX\fP 
.SS "#define SCHAR_MAX   (127)"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMaximum value for an object of type \fC signed char\fP\&. Minimum Acceptable Value: 127 
.SS "#define SCHAR_MIN   (\-128)"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMinumum value for an object of type \fC signed char\fP\&. Maximum Acceptable Value: -128 
.SS "#define SCNd16   __16_PREFIX 'd'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to scan the value of type int16_t 
.SS "#define SCNd32   'd'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to scan the value of type int32_t 
.SS "#define SCNd64   __64_PREFIX 'd'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to scan the value of type int64_t 
.SS "#define SCNu16   __16_PREFIX 'u'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to scan the value of type uint16_t 
.SS "#define SCNu32   'u'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to scan the value of type uint32_t 
.SS "#define SCNu64   __64_PREFIX 'u'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to scan the value of type uint64_t 
.SS "#define SCNx16   __16_PREFIX 'x'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to scan the 16-bit value in hex 
.SS "#define SCNx32   'x'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to scan the 32-bit value in hex 
.SS "#define SCNx64   __64_PREFIX 'x'"

.PP
\fC#include <\fBinttypes\&.h\fP>\fPMacro to be used in a format string to scan the 64-bit value in hex 
.SS "#define SHRT_MAX   (32767)"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMaximum value for an object of type \fC signed short int\fP\&. Minimum Acceptable Value: 32767 
.SS "#define SHRT_MIN   (\-32768)"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMinimum value for an object of type \fC signed short int\fP\&. Maximum Acceptable Value: -32768 
.SS "#define TEMP_FAILURE_RETRY(expression)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP\fBValue:\fP
.PP
.nf
({                               \
    typeof (expression) _result;                                        \
    do {                                                                \
        _result = (expression);                                         \
    } while (_result == ((typeof (expression)) -1) && errno == EINTR);  \
    _result; })
.fi
.PP
Recall function if it was interrupted by signal\&. 
.PP
\fBParameters:\fP
.RS 4
\fIexpression\fP macro argument\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
result of last function call\&. 
.RE
.PP

.SS "#define UCHAR_MAX   (255)"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMaximum value for an object of type \fC unsigned char\fP\&. Minimum Acceptable Value: 255 
.SS "#define UINT_MAX   (~0U)"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMaximum value for an object of type \fCunsigned\fP\&. Minimum Acceptable Value: 4 294 967 295 
.SS "#define ULLONG_MAX   (~0ULL)"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMaximum value for an object of type \fC unsigned long long\fP\&. Minimum Acceptable Value: 18446744073709551615 
.SS "#define ULONG_MAX   (~0UL)"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMaximum value for an object of type \fC unsigned long\fP\&. Minimum Acceptable Value: 4 294 967 295 
.SS "#define USHRT_MAX   (0xFFFFU)"

.PP
\fC#include <\fBlimits\&.h\fP>\fPMaximum value for an object of type \fC unsigned short\fP\&. Minimum Acceptable Value: 65 535 
.SS "#define uuid_generate_time(x)   \fBuuid_generate\fP(x)"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fPThe \fCuuid_generate\fP function creates a new universally unique identifier (UUID)\&. based on secure timer value\&. 
.SS "#define UUID_STRING_LEN   37"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fPLength of string representation of UUID in format (with terminating '\\0'): \fCxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\fP\&. 
.SS "#define uuid_unparse_lower(uu, out)   \fBuuid_unparse\fP((uu), (out))"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fPConvert binary representation of UUID to string in lowercase format \fCxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\fP\&. 
.SH "Typedef Documentation"
.PP 
.SS "\fB__uuid_t\fP"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fPProvide UUID type as the structure\&. 
.SS "constraint_handler_t"

.PP
\fC#include <\fBstdlib\&.h\fP>\fPUsed for runtime-constraint handler description\&. 
.SS "\fBerrno_t\fP"

.PP
\fC#include <\fBerrno\&.h\fP>\fPUsed for error description in safe C functions (*_s)\&. See Annex K of C11 standard\&. 
.SS "\fBgid_t\fP"

.PP
\fC#include <\fBsys/types\&.h\fP>\fPUsed for groups IDs\&. 
.SS "\fBmode_t\fP"

.PP
\fC#include <\fBsys/types\&.h\fP>\fPUsed for some file attributes\&. 
.SS "\fBoff_t\fP"

.PP
\fC#include <\fBsys/types\&.h\fP>\fPUsed for file sizes\&. 
.SS "\fBpid_t\fP"

.PP
\fC#include <\fBsys/types\&.h\fP>\fPUsed for process IDs\&. 
.SS "\fBssize_t\fP"

.PP
\fC#include <\fBsys/types\&.h\fP>\fPUsed for a count of bytes or an error indication\&. 
.SS "\fBtime_t\fP"

.PP
\fC#include <\fBsys/types\&.h\fP>\fPUsed for time in seconds\&. 
.SS "\fBuid_t\fP"

.PP
\fC#include <\fBsys/types\&.h\fP>\fPUsed for user IDs\&. 
.SS "\fBuuid_t\fP"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fPProvide UUID type for users\&. 
.SH "Function Documentation"
.PP 
.SS "void _exit (int status)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Terminate the calling process 'immediately'\&. Any open file descriptors belonging to the process are closed; process's parent is sent a SIGCHLD signal\&. Cause process termination without calling of functions registered with \fBatexit()\fP and return the value of \fCstatus\fP & 0377 to the parent\&.
.PP
\fBParameters:\fP
.RS 4
\fIstatus\fP value to return to parent process\&.
.br
\fIstatus\fP function argument\&. 
.RE
.PP

.SS "void _exit_thread (unsigned long status)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Terminate the calling thread 'immediately'\&. 
.PP
\fBParameters:\fP
.RS 4
\fIstatus\fP value to return to parent process\&. 
.RE
.PP

.SS "void abort_handler_s (const char *restrict msg, void *restrict ptr, \fBerrno_t\fP error)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Abort system if constraint was caused\&. 
.PP
\fBParameters:\fP
.RS 4
\fImsg\fP pointer to the error message\&. 
.br
\fIptr\fP pointer to an implementation-defined object or a NULL\&. 
.br
\fIerror\fP positive value of type errno_t\&. 
.RE
.PP

.SS "static __inline__ int abs (int j)\fC [static]\fP"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Compute the absolute value of the integer argument \fC__n\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIj\fP function argument\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
the result of computation\&. 
.RE
.PP

.SS "int alarm (unsigned int seconds)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
Set the real-time timer to expire in \fCseconds\fP seconds\&. 
.PP
\fBParameters:\fP
.RS 4
\fIseconds\fP Time in second\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
The return value indicates how many seconds remain before the previous alarm would have been sent\&. If there is no previous alarm, alarm returns zero\&. 
.RE
.PP

.SS "unsigned int arm_timer_get_frequency (void)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
The function retrieves the frequency of ARM timer\&. 
.PP
\fBReturn values:\fP
.RS 4
\fIfrequency\fP of ARM timer in HZ\&. 
.RE
.PP

.SS "int asprintf (char ** strp, const char * fmt,  \&.\&.\&.)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
print to allocated string\&. 
.PP
\fBParameters:\fP
.RS 4
\fIstrp\fP Pointer to newly allocated string or NULL(if the function failed)\&. 
.br
\fIfmt\fP Format string\&. 
.br
\fI\&.\&.\&.\fP Variable arguments for printing\&.
.RE
.PP
The functions \fBasprintf()\fP and \fBvasprintf()\fP are analogs of \fBsprintf()\fP and \fBvsprintf()\fP, except that they allocate a string large enough to hold the output including the terminating null byte, and return a pointer to it via the first argument\&. This pointer should be passed to \fBfree()\fP to release the allocated storage when it is no longer needed\&. 
.br
 These functions are Blowfish extensions, not in C or POSIX\&. They are also available under *BSD and GNU/Linux\&. The GNU/Linux implementation leaves strp in undefined state in case of error\&.
.PP
\fBReturn values:\fP
.RS 4
\fI>=0\fP number of bytes printed if succeed 
.br
\fI-1\fP if failed, and set strp to NULL 
.RE
.PP

.SS "int atexit (void(*)(void) func)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Register the given function to be called at normal process termination\&. 
.PP
\fBParameters:\fP
.RS 4
\fIfunc\fP pointer to the function\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
0 if successful
.IP "\(bu" 2
nonzero otherwise 
.PP
.RE
.PP

.SS "void* calloc (size_t nmemb, size_t size)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Allocate memory for an array of \fCnmemb\fP elements of \fCsize\fP bytes each and return a pointer to the allocated memory\&. 
.PP
\fBNote:\fP
.RS 4
The memory is set to zero\&. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fInmemb\fP function argument\&. 
.br
\fIsize\fP function argument\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fIaddress\fP pointer to allocated memory on success\&. 
.br
\fINULL\fP if size is equal to zero\&. 
.br
\fINULL\fP and sets \fBerrno\fP to \fBENOMEM\fP if there is no enough memory to be allocated\&. 
.RE
.PP

.SS "int clock_gettime (clockid_t clk_id, struct timespec * ts)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
The function retrieves the time of the specified clock \fCclk_id\fP\&. This function is non-blocking, except CLOCK_REE case\&. In this case function can sleep and can be interrupted with -1 result and EINTR errno\&. 
.PP
\fBParameters:\fP
.RS 4
\fIclk_id\fP Specified clock\&. 
.br
\fIts\fP timespec structs argument\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP on success\&. 
.br
\fI-1\fP on failure\&. \fBerrno\fP variable is set appropriately\&. 
.RE
.PP

.SS "int close (int fd)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Deallocate the file descriptor indicated by \fCfd\fP\&. To deallocate means to make the file descriptor available for return by subsequent calls to \fBopen()\fP or other functions that allocate file descriptors\&. All outstanding record locks owned by the process on the file associated with the file descriptor shall be removed (that is, unlocked)\&. 
.PP
\fBParameters:\fP
.RS 4
\fIfd\fP file descriptor\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP on success\&. 
.br
\fI-1\fP on error\&. \fBerrno\fP is set appropriately\&. 
.RE
.PP

.SS "void exit (int status)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Cause normal process termination and return the value of \fCstatus\fP & 0377 to the parent\&. 
.PP
\fBParameters:\fP
.RS 4
\fIstatus\fP function argument\&. 
.RE
.PP

.SS "int fflush (FILE * stream)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
Flush a stream\&. 
.PP
\fBParameters:\fP
.RS 4
\fIstream\fP A writeable file handle\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI=0\fP if succeed\&. 
.br
\fIEOF\fP if error occurred\&. 
.RE
.PP

.SS "int fprintf (FILE *_restrict_ stream, const char *_restrict_ fmt,  \&.\&.\&.)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
The \fBfprintf()\fP is equivalent to the \fBprintf()\fP, but uses a custom file handle\&. 
.PP
\fBParameters:\fP
.RS 4
\fIstream\fP A writeable file handle\&. 
.br
\fIfmt\fP Format specification of output string\&. 
.br
\fI\&.\&.\&.\fP Arguments used for printing\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI>=0\fP number of characters printed if succeed\&. 
.br
\fI-1\fP if error occurred\&.
.RE
.PP
Example: 
.PP
.nf
fprintf(stdout, "Hello, %s!\n", "world");

.fi
.PP
 
.SS "void free (void * ptr)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Free the memory space pointer to by \fCptr\fP\&. 
.PP
\fBNote:\fP
.RS 4
if free(\fCptr\fP) has already been called before, undefined behaviour occurs\&. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIptr\fP - pointer returned by a previous call to \fBmalloc()\fP, \fBcalloc()\fP, or \fBrealloc()\fP\&. 
.RE
.PP

.SS "int fstat (int fd, struct \fBstat\fP * buf)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Get status of a file with a descriptor \fCfd\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIfd\fP File descriptor\&. 
.br
\fIbuf\fP Pointer to structure to store status information\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP on success\&. 
.br
\fI-1\fP on error\&. \fBerrno\fP is set appropriately\&. 
.RE
.PP

.SS "int ftruncate (int fd, int size)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Cause file referenced by \fCfd\fP to be truncated to a \fCsize\fP of precisely length bytes\&. 
.PP
\fBParameters:\fP
.RS 4
\fIfd\fP file descriptor\&. 
.br
\fIsize\fP function argument\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP on success\&. 
.br
\fI-1\fP on error\&. \fBerrno\fP is set appropriately\&. 
.RE
.PP

.SS "int* get_errno_addr (void)"

.PP
\fC#include <\fBerrno\&.h\fP>\fP
.PP
This function should NOT be used directly, use '\fBerrno\fP' instead\&. 
.PP
\fBReturns:\fP
.RS 4
thread local pointer to \fBerrno\fP 
.RE
.PP

.SS "int getcluster (void)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Return the cluster id on which current thread is performed\&. 
.PP
\fBNote:\fP
.RS 4
Arch-specific function\&. Assumes the presence of two clusters\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
function result\&. 
.RE
.PP

.SS "int getcpu (void)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Return the number of CPU on which current thread is performed\&. 
.PP
\fBReturns:\fP
.RS 4
function result\&. 
.RE
.PP

.SS "int getitimer (int which, struct itimerval * curr_value)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
Get value of an interval timer\&. 
.PP
\fBParameters:\fP
.RS 4
\fIwhich\fP setting for the timer (one of \fBITIMER_REAL\fP, \fBITIMER_VIRTUAL\fP, or \fBITIMER_PROF\fP)\&. 
.br
\fIcurr_value\fP The function \fBgetitimer()\fP fills the structure pointed to by curr_value\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP on success\&. 
.br
\fI-1\fP on failure\&. \fBerrno\fP variable is set appropriately\&. 
.RE
.PP

.SS "\fBpid_t\fP getpid (void)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Return the process ID of the calling process\&. 
.PP
\fBReturns:\fP
.RS 4
function result\&. 
.RE
.PP

.SS "\fBpid_t\fP gettid (void)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Return the thread ID of the calling thread\&. 
.PP
\fBReturns:\fP
.RS 4
function result\&. 
.RE
.PP

.SS "void ignore_handler_s (const char *restrict msg, void *restrict ptr, \fBerrno_t\fP error)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Returns to the caller without performing any actions\&. 
.PP
\fBParameters:\fP
.RS 4
\fImsg\fP pointer to the error message\&. 
.br
\fIptr\fP pointer to an implementation-defined object or a NULL\&. 
.br
\fIerror\fP positive value of type errno_t\&. 
.RE
.PP

.SS "void invoke_constraint_handler_s (const char * msg, const char * file, const char * function, uint32_t line, \fBerrno_t\fP error)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Print \fCmsg\fP if constraint was caused\&. 
.PP
\fBParameters:\fP
.RS 4
\fImsg\fP pointer to the error message\&. 
.br
\fIfile\fP name of file where constraint was caused\&. 
.br
\fIfunction\fP name of function where constraint was caused\&. 
.br
\fIline\fP number of line where constraint was caused\&. 
.br
\fIerror\fP positive value of type errno_t\&. 
.RE
.PP

.SS "int ioctl (int fd, int request, unsigned long data)"

.PP
\fC#include <\fBsys/ioctl\&.h\fP>\fP
.PP
Manipulates the underlying device parameters of special files\&. 
.PP
\fBParameters:\fP
.RS 4
\fIfd\fP Open file descriptor\&. 
.br
\fIrequest\fP Device-dependent request code\&. 
.br
\fIdata\fP Optional data associated with request\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
usually, on success zero is returned, on error -1 is returned and \fBerrno\fP is set appropriately\&. Strictly speaking, return status is device-dependent\&.
.RE
.PP
Performs a variety of control functions on a device opened by \fBopen()\fP system call\&. The request argument and an optional third argument (of varying type) are device driver implementation-defined\&. Example: 
.PP
.nf
ret = ioctl (fd, STORAGE_GET_IMAGE_SNAPSHOT, 0);
if (ret == -1)
  return errno;

.fi
.PP
 
.SS "static int isalnum (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for an alphanumeric character; it is equivalent to (isalpha(c) || isdigit(c))\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is an alphanumeric character;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int isalpha (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for an alphabetic character; it is equivalent to (isupper(c) || islower(c)) 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is an alphabetic character;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int isascii (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check whether \fCc\fP is a 7-bit unsigned char value that fits into the ASCII character set\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is a 7-bit US-ASCII character code between 0 and octal 0177 inclusive;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int isblank (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for a blank character; that is, a space or a tab\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is a blank character;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int iscntrl (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for a control character\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is a control character;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int isdigit (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for a digit (0 through 9) 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is a decimal digit character;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int isgraph (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for any printable character except space\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is a character with a visible representation;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int islower (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for an lowercase letter\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if c is a lowercase letter;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int isprint (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for any printable character including space\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is a printable character;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int ispunct (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for any printable character which is not a space or an alphanumeric character\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is a punctuation character;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int isspace (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for white-space characters\&. These are: space, form-feed ('\\f'), newline ('\\n'), carriage return ('\\r'), horizontal tab ('\\t'), and vertical tab ('\\v')\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is a white-space character;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int isupper (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for an uppercase letter\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is an uppercase letter;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "static int isxdigit (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Check for hexadecimal digits, that is, one of 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for checking 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-zero if \fCc\fP is a hexadecimal digit character;
.IP "\(bu" 2
0 otherwise\&. 
.PP
.RE
.PP

.SS "int lseek (int fd, int offset, int whence)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Reposition read/write file offset\&. Available modes:
.IP "\(bu" 2
SEEK_SET - offset is set to \fCoffset\fP bytes\&.
.IP "\(bu" 2
SEEK_CUR - offset is set to current location plus \fCoffset\fP bytes\&.
.IP "\(bu" 2
SEEK_END - offset is set to the size of the file plus \fCoffset\fP bytes\&.
.PP
.PP
\fBParameters:\fP
.RS 4
\fIfd\fP File descriptor\&. 
.br
\fIoffset\fP New offset value\&. 
.br
\fIwhence\fP Mode of operation\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
resulting offset location from the beginning of the file - on success\&.
.IP "\(bu" 2
-1 and set \fBerrno\fP to indicate the error - otherwise\&. 
.PP
.RE
.PP

.SS "void* malloc (size_t size)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Allocate \fCsize\fP bytes and return a pointer to the allocated memory\&. 
.PP
\fBParameters:\fP
.RS 4
\fIsize\fP - size of memory to be allocated\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fIaddress\fP pointer to allocated memory on success\&. 
.br
\fINULL\fP if size is equal to zero\&. 
.br
\fINULL\fP and sets \fBerrno\fP to \fBENOMEM\fP if there is no enough memory to be allocated\&. 
.RE
.PP

.SS "void* memchr (const void * s, int c, size_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Find a character in an area of memory\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP pointer to the memory area\&. 
.br
\fIc\fP the byte to search for\&. 
.br
\fIn\fP the size of the area\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
address of the first occurrence of \fCc\fP, or \fCNULL\fP\&. 
.RE
.PP

.SS "int memcmp (const void * s1, const void * s2, size_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Compare fist \fCn\fP bytes of memory pointed by \fCs1\fP and \fCs2\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs1\fP fist memory region to compare\&. 
.br
\fIs2\fP second memory region to compare\&. 
.br
\fIn\fP number of bytes to compare\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP memory regions have the same values\&. 
.br
\fI<0\fP region \fCs1\fP has lower value than \fCs2\fP\&. 
.br
\fI>0\fP region \fCs1\fP has greater value than \fCs2\fP\&. 
.RE
.PP

.SS "void* memcpy (void * dest, const void * src, size_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Copy memory area from \fCsrc\fP to \fCdst\fP\&. The memory must not overlap\&. To copy overlapped area use \fBmemmove()\fP function\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP destination area\&. 
.br
\fIsrc\fP source area\&. 
.br
\fIn\fP number of bytes to copy\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to \fCdest\fP area\&. 
.RE
.PP

.SS "\fBerrno_t\fP memcpy_s (void *restrict dest, rsize_t dest_max, const void *restrict src, rsize_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Check arguments and copy \fCsrc\fP sized memory area to \fCdest\fP\&. Memory must not be overlapped\&. To copy overlapped area use \fBmemmove_s()\fP function\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP destination area\&. 
.br
\fIdest_max\fP max number of bytes to modify in the dest\&. 
.br
\fIsrc\fP source area\&. 
.br
\fIn\fP number of bytes to copy\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP function completed work with success\&. 
.br
\fI!=0\fP function completed work with error\&. 
.RE
.PP

.SS "void* memmove (void * dest, const void * src, size_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Copy memory area from \fCsrc\fP to \fCdest\fP\&. The memory may overlap\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP destination area\&. 
.br
\fIsrc\fP source area\&. 
.br
\fIn\fP number of bytes to copy\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to \fCdest\fP area\&. 
.RE
.PP

.SS "\fBerrno_t\fP memmove_s (void * dest, rsize_t dest_max, const void * src, rsize_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Check arguments and copy \fCsrc\fP sized memory area to \fCdest\fP\&. Memory may be overlapped\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP destination area\&. 
.br
\fIdest_max\fP max number of bytes to modify in the dest\&. 
.br
\fIsrc\fP source area\&. 
.br
\fIn\fP number of bytes to copy\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP function completed work with success\&. 
.br
\fI!=0\fP function completed work with error\&. 
.RE
.PP

.SS "void* memset (void * block, int c, size_t size)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Fill \fCsize\fP bytes with a constant value\&. 
.PP
\fBParameters:\fP
.RS 4
\fIblock\fP address of memory region to be filled\&. 
.br
\fIc\fP value to fill\&. 
.br
\fIsize\fP number of bytes to fill\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to \fCblock\fP area\&. 
.RE
.PP

.SS "\fBerrno_t\fP memset_s (void * block, rsize_t block_max, int c, rsize_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Check arguments and fill \fCn\fP bytes of \fCblock\fP sized memory with \fCc\fP constant value\&. 
.PP
\fBParameters:\fP
.RS 4
\fIblock\fP address of memory region to be filled\&. 
.br
\fIblock_max\fP max number of bytes for copy to block\&. 
.br
\fIc\fP value to fill\&. 
.br
\fIn\fP number of bytes to fill\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP function completed work with success\&. 
.br
\fI!=0\fP function completed work with error\&. 
.RE
.PP

.SS "void* mmap (void * addr, size_t len, int prot, int flags, int fd, \fBoff_t\fP offset)"

.PP
\fC#include <\fBsys/mman\&.h\fP>\fPThe \fBmmap()\fP function establishes a mapping between a process' address space and a file or shared memory object\&. 
.PP
\fBParameters:\fP
.RS 4
\fIaddr\fP starting address\&. 
.br
\fIlen\fP specify the length of the mapping\&. 
.br
\fIprot\fP Describes the desired memory protection of the mapping Protection flags are defined in \fBcore/mman\&.h\fP header\&. Possible values:
.IP "\(bu" 2
\fBPROT_READ\fP - Data can be read\&.
.IP "\(bu" 2
\fBPROT_WRITE\fP - Data can be written\&.
.IP "\(bu" 2
\fBPROT_EXEC\fP - Data can be executed\&.
.IP "\(bu" 2
\fBPROT_NONE\fP - Data cannot be accessed\&. 
.PP
.br
\fIflags\fP Provides other information about the handling of the mapped data\&. All flags except \fBMAP_PHYS_NON_SECURE\fP and \fBMAP_PHYS_NON_CACHED\fP are defined in \fBcore/mman\&.h\fP header\&. Possible values:
.IP "\(bu" 2
\fBMAP_ANONYMOUS\fP - The mapping is not backed by any file; its contents are initialized to zero\&.
.IP "\(bu" 2
\fBMAP_POPULATE\fP - Populate (prefault) page tables for a mapping\&.
.IP "\(bu" 2
\fBMAP_FIXED\fP - Don't interpret addr as a hint: place the mapping at exactly that address\&.
.IP "\(bu" 2
\fBMAP_PRIVATE\fP - Create a private copy-on-write mapping\&. Updates to the mapping are not visible to other processes mapping the same file, and are not carried through to the underlying file\&.
.IP "\(bu" 2
\fBMAP_SHARED\fP - Share this mapping\&. Updates to the mapping are visible to other processes that map this file, and are carried through to the underlying file\&.
.IP "\(bu" 2
\fBMAP_PHYS_NON_SECURE\fP - Use non-secure mapping (phys_mmap driver specific, i\&.e\&. for mappings created in phys:// namespace)\&. Defined in \fBdriver/mem/phys\&.h\fP header\&.
.IP "\(bu" 2
\fBMAP_PHYS_NON_CACHED\fP - Use non-cached mapping (phys_mmap driver specific, i\&.e\&. for mappings created in phys:// namespace)\&. Defined in \fBdriver/mem/phys\&.h\fP header\&.
.PP
.br
\fIfd\fP file descriptor\&. 
.br
\fIoffset\fP offset\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
Upon successful completion, the \fBmmap()\fP function returns the address at which the mapping was placed (pa); otherwise, it returns a value of \fBMAP_FAILED\fP\&.
.RE
.PP
Example: 
.PP
.nf
address = mmap(0, len, PROT_READ, MAP_PRIVATE, fildes, some_offset);

.fi
.PP
 
.SS "void ms_to_timespec (int64_t t, struct timespec * a)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
The function converts time in milliseconds to to timespec format\&. 
.PP
\fBParameters:\fP
.RS 4
\fIt\fP time in milliseconds\&. 
.br
\fIa\fP Pointer to timespec structure to save result\&. 
.RE
.PP

.SS "int munmap (void * addr, size_t length)"

.PP
\fC#include <\fBsys/mman\&.h\fP>\fPTries to unmap memory area at addr of length bytes previously allocated and mmaped by \fBmmap()\fP system call\&. 
.PP
\fBParameters:\fP
.RS 4
\fIaddr\fP address where memory was previously mapped\&. 
.br
\fIlength\fP size of the memory area\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP no error\&. 
.br
\fI-1\fP on failure\&. \fBerrno\fP variable is set appropriately\&.
.IP "\(bu" 2
\fBEINVAL\fP - invalid length specified\&.
.IP "\(bu" 2
\fBEPERM\fP - memory area other than heap is specified\&.
.PP
.RE
.PP
Example: 
.PP
.nf
ret = munmap(buf, 0x8000);
if (ret) {
  printf("munmap error\n");
  panic(1);
}

.fi
.PP
 
.SS "int nanosleep (struct timespec * req, struct timespec * rem)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
\fBnanosleep()\fP suspends the execution of the calling thread until either at least the time specified in \fC*req\fP has elapsed, or the delivery of a signal that triggers the invocation of a handler in the calling thread or that terminates the process\&. If the call is interrupted by a signal handler, \fBnanosleep()\fP returns -1, sets \fBerrno\fP to \fBEINTR\fP, and writes the remaining time into the structure pointed to by rem unless rem is NULL\&. The value of \fC*req\fP can then be used to call \fBnanosleep()\fP again and complete the specified pause\&. 
.PP
\fBParameters:\fP
.RS 4
\fIreq\fP Pointer to requested time\&. 
.br
\fIrem\fP Pointer to remained time\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP on success\&. 
.br
\fI-1\fP on failure\&. \fBerrno\fP variable is set appropriately\&.
.RE
.PP
Example: 
.PP
.nf
struct timespec req;
struct timespec rem;
req\&.tv_sec = TIME_TO_WAIT;
req\&.tv_nsec = 0;

if(nanosleep(&req, &rem) != 0) {
    printf(TEST_NAME": nanosleep() failed, errno: %d\n", errno);
}

.fi
.PP
 
.SS "int open (const char * pathname, int flags,  \&.\&.\&.)"

.PP
\fC#include <\fBfcntl\&.h\fP>\fP
.PP
Open a device by specifying its namespace path\&. Device driver operations should be previously registered with the namespace framework\&. 
.PP
\fBParameters:\fP
.RS 4
\fIpathname\fP namespace path for specific device 
.br
\fIflags\fP file access mode 
.br
\fI\&.\&.\&.\fP (optional) file mode 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI>0\fP a descriptor assosiated with the device\&. 
.br
\fI-1\fP on error and sets \fBerrno\fP to appropriated value:
.IP "\(bu" 2
\fBEINVAL\fP – pathname is invalid or device not registered;
.IP "\(bu" 2
\fBENOMEM\fP – there is not enough memory for internal operations;
.IP "\(bu" 2
\fBEMFILE\fP – to many device descriptors opened by the current thread;
.IP "\(bu" 2
Other values are device driver implementation defined
.PP
.RE
.PP
Example: 
.PP
.nf
int func(void) {
    int fd = open(“dev://crypto”, O_RDWR);
    if (fd < 0)
        return errno;
}

.fi
.PP
 
.SS "int printf (const char * fmt,  \&.\&.\&.)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
Format and print string\&. 
.PP
\fBParameters:\fP
.RS 4
\fIfmt\fP Format specification of output string\&. 
.br
\fI\&.\&.\&.\fP Arguments used for printing\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI>=0\fP number of characters printed if succeed\&. 
.br
\fI-1\fP if error occurred\&.
.RE
.PP
Example: 
.PP
.nf
int a,b;
float c,d;

a = 15;
b = a / 2;
printf("%d\n",b);
printf("%3d\n",b);
printf("%03d\n",b);

c = 15\&.3;
d = c / 3;
printf("%3\&.2f\n",d);

.fi
.PP
 
.SS "int printf_no_alloc (const char * fmt,  \&.\&.\&.)"

.PP
\fC#include <\fBprint_no_alloc\&.h\fP>\fP
.PP
Prints to ringbuffer\&. If resulting string exceeds AUTO_BUFFER_SIZE, cuts it off to AUTO_BUFFER_SIZE\&. 
.PP
\fBParameters:\fP
.RS 4
\fIfmt\fP Format specification of output string\&. 
.br
\fI\&.\&.\&.\fP Arguments used for printing\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI>=0\fP number of characters printed if succeed\&. 
.br
\fI-1\fP if error occurred\&.
.RE
.PP
Example: 
.PP
.nf
printf_no_alloc("Receive_signal_test: never reach here\&.\n");

.fi
.PP
 
.SS "int printf_s (const char *restrict fmt,  \&.\&.\&.)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
format and print string\&. 
.PP
\fBParameters:\fP
.RS 4
\fIfmt\fP Format specification of output string\&. 
.br
\fI\&.\&.\&.\fP Arguments used for printing\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI>=0\fP number of characters printed if succeed\&. 
.br
\fI-1\fP if error occurred\&. 
.RE
.PP

.SS "int profil (unsigned short * buf, size_t bufsiz, size_t offset, unsigned int scale)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Provide a means to find out in what areas your program spends most of its time\&. The argument \fCbuf\fP points to \fCbufsiz\fP bytes of core\&. Every virtual 10 milliseconds, the user's program counter (PC) is examined: \fCoffset\fP is subtracted and the result is multiplied by \fCscale\fP and divided by 65536\&. If the resulting value is less than \fCbufsiz\fP, then the corresponding entry in \fCbuf\fP is incremented\&. If \fCbuf\fP is NULL, profiling is disabled\&. 
.PP
\fBParameters:\fP
.RS 4
\fIbuf\fP function argument\&. 
.br
\fIbufsiz\fP function argument\&. 
.br
\fIoffset\fP function argument\&. 
.br
\fIscale\fP function argument\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
zero is always returned\&. 
.RE
.PP

.SS "int putchar (int ch)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
writes a character to log\&. writes the character \fCch\fP, cast to an unsigned char, to the log\&. 
.PP
\fBParameters:\fP
.RS 4
\fIch\fP Character to print\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fIcharacter\fP written as an unsigned char cast to an int\&. 
.br
\fI\fBEOF\fP\fP on error\&. 
.RE
.PP

.SS "int puts (const char * s)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
writes the string s and a trailing newline to log(dmesg)\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP String to print\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI>=0\fP on success\&. 
.br
\fI\fBEOF\fP\fP on error\&. 
.RE
.PP

.SS "void qsort (void * base, size_t nmemb, size_t size, int(*)(const void *, const void *) compar)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Sort an array\&. 
.PP
\fBParameters:\fP
.RS 4
\fIbase\fP pointer to start of the array\&. 
.br
\fInmemb\fP number or elements in array\&. 
.br
\fIsize\fP size of each element in array\&. 
.br
\fIcompar\fP comparison function\&. 
.RE
.PP

.SS "void qsort_r (void * base, size_t nmemb, size_t size, int(*)(const void *, const void *, void *) compar, void * arg)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Sort an array\&. 
.PP
\fBParameters:\fP
.RS 4
\fIbase\fP pointer to start of the array\&. 
.br
\fInmemb\fP number or elements in array\&. 
.br
\fIsize\fP size of each element in array\&. 
.br
\fIcompar\fP comparison function\&. 
.br
\fIarg\fP argument, which passed directly as 3-rd parameter to \fCcompar\fP\&. 
.RE
.PP

.SS "\fBssize_t\fP read (int fd, void * buf, size_t count)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Attempt to read \fCcount\fP bytes from the file associated with the open file descriptor, \fCfd\fP, into the buffer pointed to by \fCbuf\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIfd\fP File descriptor\&. 
.br
\fIbuf\fP Pointer to buffer to write\&. 
.br
\fIcount\fP Number of bytes to read\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-negative integer indicating the number of bytes actually read - on success\&.
.IP "\(bu" 2
-1 and set \fBerrno\fP to indicate the error - otherwise\&. 
.PP
.RE
.PP

.SS "void* realloc (void * ptr, size_t size)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Change the size of the memory block pointed to by \fCptr\fP to \fCsize\fP bytes\&. 
.PP
\fBNote:\fP
.RS 4
The contents will be unchanged in the range from the start of the region up to the minimum of the old and new sizes\&. If the new size is larger than the old size, the added memory will not be initialized\&. If \fCptr\fP is NULL, then the call is equivalent to malloc(size), for all values of size; if size is equal to zero, and \fCptr\fP is not NULL, then the call is equivalent to free(\fCptr\fP)\&. Unless \fCptr\fP is NULL, it must have been returned by an earlier call to \fBmalloc()\fP, \fBcalloc()\fP or \fBrealloc()\fP\&. If the area pointed to was moved, a free(\fCptr\fP) is done\&. If \fBrealloc()\fP fails, the original block is left untouched; it is not freed or moved\&. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIptr\fP function argument\&. 
.br
\fIsize\fP function argument\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fIaddress\fP pointer to the newly allocated memory, which is properly aligned for any built-in type and may be different from \fCptr\fP\&. 
.br
\fINULL\fP if the request fails\&.
.IP "\(bu" 2
either NULL or a pointer suitable to be passed to \fBfree()\fP if size was equal to 0\&. 
.PP
.RE
.PP

.SS "int sched_getaffinity (\fBpid_t\fP pid, size_t cpusetsize, \fBcpu_set_t\fP * mask)"

.PP
\fC#include <\fBsched\&.h\fP>\fP
.PP
Writes the affinity mask of the process whose \fCID\fP is pid into the \fC\fBcpu_set_t\fP\fP structure pointed to by \fCmask\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIpid\fP process ID\&. 
.br
\fIcpusetsize\fP size (in bytes) of mask\&. 
.br
\fImask\fP pointer to CPU affinity mask\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP function completed work with success\&. 
.br
\fI-1\fP function completed work with error and errno is set appropriately\&. 
.RE
.PP

.SS "int sched_setaffinity (\fBpid_t\fP pid, size_t cpusetsize, \fBcpu_set_t\fP * mask)"

.PP
\fC#include <\fBsched\&.h\fP>\fP
.PP
Sets the CPU affinity mask of the process whose \fCID\fP is pid to the value specified by \fCmask\fP\&. If pid is zero, then the calling process is used\&. 
.PP
\fBParameters:\fP
.RS 4
\fIpid\fP process ID\&. 
.br
\fIcpusetsize\fP the length (in bytes) of the data pointed to by mask\&. 
.br
\fImask\fP pointer to CPU affinity mask\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP function completed work with success\&. 
.br
\fI-1\fP function completed work with error and errno is set appropriately\&. 
.RE
.PP

.SS "int sched_yield (void)"

.PP
\fC#include <\fBsched\&.h\fP>\fP
.PP
Causes the calling thread to relinquish the CPU\&. The thread is moved to the end of the queue for its static priority and a new thread gets to run\&. 
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP function completed work with success\&. 
.br
\fI-1\fP function completed work with error and errno is set appropriately\&. 
.RE
.PP

.SS "\fBconstraint_handler_t\fP set_constraint_handler_s (\fBconstraint_handler_t\fP handler)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Set the \fChandler\fP to be handler\&. 
.PP
\fBParameters:\fP
.RS 4
\fIhandler\fP runtime-constraint handler\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to the previously registered handler\&. 
.RE
.PP

.SS "int setitimer (int which, const struct itimerval * new_value, struct itimerval * old_value)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
Set value of an interval timer\&. 
.PP
\fBParameters:\fP
.RS 4
\fIwhich\fP Setting for the timer (one of \fBITIMER_REAL\fP, \fBITIMER_VIRTUAL\fP, or \fBITIMER_PROF\fP)\&. 
.br
\fInew_value\fP The function \fBsetitimer()\fP sets the specified timer to the value in new_value\&. 
.br
\fIold_value\fP If old_value is non-NULL, the old value of the timer is stored there\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP on success\&. 
.br
\fI-1\fP on failure\&. \fBerrno\fP variable is set appropriately\&. 
.RE
.PP

.SS "int snprintf (char * s, size_t count, const char * fmt,  \&.\&.\&.)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
format and string and save it to `s'\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to an array of char elements where the resulting string will be stored\&. 
.br
\fIcount\fP size of \fCs\fP in bytes\&. 
.br
\fIfmt\fP Format specification of output string\&. 
.br
\fI\&.\&.\&.\fP Arguments used for printing\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fInumber\fP of characters printed\&. 
.br
\fInumber\fP of characters printed if succeed\&. 
.br
\fI-1\fP if error occurred\&.
.RE
.PP
Example: 
.PP
.nf
char buffer[200];
int i, j;
double fp;
char *s = "baltimore";
char c;

int main(void)
{
   c = 'l';
   i = 35;
   fp = 1\&.7320508;

   j = snprintf(buffer, 6, "%s\n", s);
   j += snprintf(buffer+j, 6, "%c\n", c);
   j += snprintf(buffer+j, 6, "%d\n", i);
   j += snprintf(buffer+j, 6, "%f\n", fp);
   printf("string:\n%s\ncharacter count = %d\n", buffer, j);
}

.fi
.PP
 
.SS "int snprintf_s (char *restrict s, rsize_t n, const char *restrict format,  \&.\&.\&.)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
Format string and save it to `s'\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to an array of char elements where the resulting string will be stored\&. 
.br
\fIn\fP Size of \fCs\fP in bytes\&. 
.br
\fIformat\fP Format specification of output string\&. 
.br
\fI\&.\&.\&.\fP Arguments used for printing\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fInumber\fP Number of characters printed if succeed\&. 
.br
\fI-1\fP if error occurred\&. 
.RE
.PP

.SS "int sprintf (char * s, const char * fmt,  \&.\&.\&.)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
format and string and save it to `s'\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to an array of char elements where the resulting string will be stored\&. 
.br
\fIfmt\fP Format specification of output string\&. 
.br
\fI\&.\&.\&.\fP Arguments used for printing\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fInumber\fP of characters printed if succeed\&. 
.br
\fI-1\fP if error occurred\&.
.RE
.PP
Example: 
.PP
.nf
char str[80];

sprintf(str, "Value of Pi = %f", M_PI);

.fi
.PP
 
.SS "int sprintf_s (char *restrict s, rsize_t n, const char *restrict format,  \&.\&.\&.)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
format string and save it to `s'\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to an array of char elements where the resulting string will be stored\&. 
.br
\fIn\fP Size of \fCs\fP in bytes\&. 
.br
\fIformat\fP Format specification of output string\&. 
.br
\fI\&.\&.\&.\fP Arguments used for printing\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fInumber\fP of characters printed if succeed\&. 
.br
\fI-1\fP if encoding error occurred\&. 
.br
\fI0\fP if constrain violation occurred\&. 
.RE
.PP

.SS "int sscanf (const char * buf, const char * fmt,  \&.\&.\&.)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
Reads data from buf and stores them according to parameter fmt into the locations given by the additional arguments\&. 
.PP
\fBParameters:\fP
.RS 4
\fIbuf\fP Pointer to C string that the function processes as its source to retrieve the data\&. 
.br
\fIfmt\fP Pointer to C string that contains a format string that follows the same specifications as format in scanf\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fInumber\fP of items read, This count can match the expected number of items or be less (even zero) in the case of a matching failure\&. 
.br
\fI\fBEOF\fP\fP in case of an input failure before any data could be successfully interpreted\&.
.RE
.PP
Example: 
.PP
.nf
char sentence []="Rudolph is 12 years old";
char str [20];
int i;

sscanf (sentence,"%s %*s %d",str,&i);
printf ("%s -> %d\n", str, i);

.fi
.PP
 
.SS "int sscanf_s (const char *restrict s, const char *restrict format,  \&.\&.\&.)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
Reads data safely from buf and stores them according to parameter fmt into the locations given by the additional arguments\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to C string that the function processes as its source to retrieve the data\&. 
.br
\fIformat\fP Pointer to C string that contains a format string that follows the same specifications as format in scanf\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fInumber\fP of items read, this count can match the expected number of items or be less (even zero) in the case of a matching failure\&. 
.br
\fI\fBEOF\fP\fP in case of an input failure before any data could be successfully interpreted\&. 
.RE
.PP

.SS "int \fBstat\fP (const char * pathname, struct \fBstat\fP * buf)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Get status of a file \fCpathname\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIpathname\fP Path to file\&. 
.br
\fIbuf\fP Pointer to structure to store status information\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP on success\&. 
.br
\fI-1\fP on error\&. \fBerrno\fP is set appropriately\&. 
.RE
.PP

.SS "char* strcat (char * dest, const char * src)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Append the \fCsrc\fP string to the \fCdest\fP string, overwriting the terminating null byte ('\\0') at the end of dest, and then adds a terminating null byte\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP Pointer to string to append\&. 
.br
\fIsrc\fP Pointer to source string\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to the resulting string \fCdest\fP\&.
.RE
.PP
Example: 
.PP
.nf
int main ()
{
   char src[50], dest[50];

   strcpy(src,  "This is source");
   strcpy(dest, "This is destination");

   strcat(dest, src);

   printf("Final destination string : |%s|", dest);

   return 0;
}

.fi
.PP
 
.SS "\fBerrno_t\fP strcat_s (char *restrict dest, rsize_t dest_max, const char *restrict src)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Check arguments and append the \fCsrc\fP string to the \fCdest\fP string, overwriting the terminating null byte ('\\0') at the end of \fCdest\fP, and add a terminating null byte\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP Pointer to string to append\&. 
.br
\fIdest_max\fP max number of bytes to modify in the dest\&. 
.br
\fIsrc\fP Pointer to source string\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP function completed work with success\&. 
.br
\fI!=0\fP function completed work with error\&. 
.RE
.PP

.SS "char* strchr (const char * s, int c)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Find first occurence of character \fCc\fP in string \fCs\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to string to search in\&. 
.br
\fIc\fP character to seach\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to matched character, or \fCNULL\fP if not found\&.
.RE
.PP
Example: 
.PP
.nf
char str[] = "This is a sample string";
char * pch;
printf ("Looking for the 's' character in \"%s\"\&.\&.\&.\n",str);
pch=strchr(str,'s');
while (pch != NULL)
{
   printf ("found at %d\n",pch-str+1);
   pch = strchr(pch+1,'s');
}

.fi
.PP
 
.SS "char* strchrnul (const char * s, int c)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Find first occurence of character \fCc\fP in string \fCs\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to string to search in\&. 
.br
\fIc\fP character to seach\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to matched character, or a pointer to the null byte at the end of s (i\&.e\&., s+strlen(s)) if the character is not found\&. 
.RE
.PP

.SS "int strcmp (const char * s1, const char * s2)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Compare the two strings \fCs1\fP and \fCs2\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs1\fP Pointer to first string to compare\&. 
.br
\fIs2\fP Pointer to second string to compare\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP strings are equal\&. 
.br
\fI<0\fP string \fCs1\fP has lower value than \fCs2\fP\&. 
.br
\fI>0\fP string \fCs1\fP has greater value than \fCs2\fP\&.
.RE
.PP
Example: 
.PP
.nf
int main ()
{
   char str1[15];
   char str2[15];
   int ret;

   strcpy(str1, "abcdef");
   strcpy(str2, "ABCDEF");

   ret = strcmp(str1, str2);

   if(ret > 0)
   {
      printf("str1 is less than str2");
   }
   else if(ret < 0)
   {
      printf("str2 is less than str1");
   }
   else
   {
      printf("str1 is equal to str2");
   }

   return 0;
}

.fi
.PP
 
.SS "char* strcpy (char * dest, const char * src)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Copy the string pointed to by \fCsrc\fP, including the terminating null byte ('\\0'), to the buffer pointed to by \fCdest\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP pointer to destination string\&. 
.br
\fIsrc\fP pointer to source string\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to destination string \fCdest\fP\&.
.RE
.PP
Example: 
.PP
.nf
int main()
{
   char src[40];
   char dest[100];

   memset(dest, '\0', sizeof(dest));
   strcpy(src, "This is example");
   strcpy(dest, src);

   printf("Final copied string : %s\n", dest);

   return 0;
}

.fi
.PP
 
.SS "\fBerrno_t\fP strcpy_s (char *restrict dest, rsize_t dest_max, const char *restrict src)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Check arguments and copy the \fCsrc\fP string, including the terminating null byte ('\\0'), to the \fCdest\fP sized buffer\&. If \fCn\fP is bigger than size of \fCsrc\fP then the remaining characters (after '\\0') are unspecified\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP pointer to destination string\&. 
.br
\fIdest_max\fP max number of bytes to modify in the dest\&. 
.br
\fIsrc\fP pointer to source string\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP function completed work with success\&. 
.br
\fI!=0\fP function completed work with error\&. 
.RE
.PP

.SS "size_t strcspn (const char * s, const char * reject)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Calculate the length of the initial segment of s which consists entirely of bytes not in reject\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to string to search in\&. 
.br
\fIreject\fP String containing the characters not to match\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
number of bytes in the initial segment of s which are not in the string reject\&. 
.RE
.PP

.SS "char* strdup (const char * s)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Return a pointer to a new string which is a duplicate of the string \fCs\fP\&. Memory for the new string is obtained with \fC\fBmalloc()\fP\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP pointer to source string\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to duplicated string\&. 
.RE
.PP

.SS "const char* strerror (int errnum)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Return a pointer to a string that describes the error code passed in the argument \fCerrnum\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIerrnum\fP error code\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to description\&. 
.RE
.PP

.SS "int strerror_r (int errnum, char * buf, size_t buflen)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Returns the error string in the user-supplied \fCbuf\fP of length \fCbuflen\fP\&. XSI-compliant version\&. 
.PP
\fBParameters:\fP
.RS 4
\fIerrnum\fP Error code\&. 
.br
\fIbuf\fP Pointer to the buffer\&. 
.br
\fIbuflen\fP Buffer length\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP on success\&. 
.br
\fI-1\fP on error and errno is set\&. 
.RE
.PP

.SS "\fBerrno_t\fP strerror_s (char * buf, rsize_t bufmax, \fBerrno_t\fP errnum)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Check arguments and return a pointer to a \fCbuf\fP string that describes the \fCerrnum\fP error code\&. 
.PP
\fBParameters:\fP
.RS 4
\fIbuf\fP pointer to a user-provided buffer\&. 
.br
\fIbufmax\fP max size of a user-provided buffer\&. 
.br
\fIerrnum\fP error code\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP function completed work with success\&. 
.br
\fI!=0\fP function completed work with error\&. 
.RE
.PP

.SS "size_t strlcat (char * dest, const char * src, size_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Append the NUL-terminated string \fCsrc\fP to the end of \fCdest\fP string, overwriting the terminating null byte ('\\0') at the end of dest, and guarantee to NUL-terminate the result\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP Pointer to string to append\&. 
.br
\fIsrc\fP Pointer to source string\&. 
.br
\fIn\fP Maximal number of bytes to copy if string does not have \\0 terminator\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
The total length of the string they tried to create\&. Count does not include NUL\&.
.RE
.PP
Example: 
.PP
.nf
int main ()
{
    char src[50], dst[50];

    strcpy(src, "It is source\&.");
    strcpy(dst, "It is dst\&.");

    strlcat(dst, src, sizeof(dst));

    return 0;
}

.fi
.PP
 
.SS "size_t strlen (const char * s)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Calculate the length of the string \fCs\fP, excluding the terminating null byte ('\\0')\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to string\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
number of bytes in the string\&.
.RE
.PP
Example: 
.PP
.nf
int main ()
{
   char string[32] = "hello, world";
   printf("String length is %zu\n", strlen(string));
   return 0;
}

.fi
.PP
 
.SS "char* strncat (char * dest, const char * src, size_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Append the \fCsrc\fP string to the \fCdest\fP string, overwriting the terminating null byte ('\\0') at the end of dest, and then adds a terminating null byte\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP Pointer to string to append\&. 
.br
\fIsrc\fP Pointer to source string\&. 
.br
\fIn\fP maximal number of bytes to copy if string does not have \\0 terminator\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to the resulting string \fCdest\fP\&.
.RE
.PP
Example: 
.PP
.nf
int main ()
{
   char src[50], dest[50];

   strcpy(src,  "This is source");
   strcpy(dest, "This is destination");

   strncat(dest, src, 10);

   printf("Final destination string : |%s|", dest);

   return 0;
}

.fi
.PP
 
.SS "\fBerrno_t\fP strncat_s (char *restrict dest, rsize_t dest_max, const char *restrict src, rsize_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Check arguments and append at most \fCn\fP bytes of \fCsrc\fP string to the \fCdest\fP string, overwriting the terminating null byte ('\\0') at the end of dest and then adds a terminating null byte\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP Pointer to string to append\&. 
.br
\fIdest_max\fP max number of bytes to modify in the dest\&. 
.br
\fIsrc\fP Pointer to source string\&. 
.br
\fIn\fP maximal number of bytes to copy if string does not have \\0 terminator\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP function completed work with success\&. 
.br
\fI!=0\fP function completed work with error\&. 
.RE
.PP

.SS "int strncmp (const char * s1, const char * s2, size_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Compare at most \fCn\fP bytes of two strings \fCs1\fP and \fCs2\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs1\fP Pointer to first string to compare\&. 
.br
\fIs2\fP Pointer to second string to compare\&. 
.br
\fIn\fP maximal number of bytes to compare if string does not have \\0 terminator\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP strings are equal\&. 
.br
\fI<0\fP string \fCs1\fP has lower value than \fCs2\fP\&. 
.br
\fI>0\fP string \fCs1\fP has greater value than \fCs2\fP\&.
.RE
.PP
Example: 
.PP
.nf
int main ()
{
   char str1[15];
   char str2[15];
   int ret;

   strcpy(str1, "abcdef");
   strcpy(str2, "ABCDEF");

   ret = strncmp(str1, str2, 4);

   if(ret > 0)
   {
      printf("str1 is less than str2");
   }
   else if(ret < 0)
   {
      printf("str2 is less than str1");
   }
   else
   {
      printf("str1 is equal to str2");
   }

   return 0;
}

.fi
.PP
 
.SS "char* strncpy (char * dest, const char * src, size_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Copy at most \fCn\fP bytes of the string pointed to by \fCsrc\fP, including the terminating null byte ('\\0'), to the buffer pointed to by \fCdest\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP pointer to destination string\&. 
.br
\fIsrc\fP pointer to source string\&. 
.br
\fIn\fP maximal number of bytes to copy if string does not have \\0 terminator\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to destination string \fCdest\fP\&.
.RE
.PP
Example: 
.PP
.nf
int main()
{
   char src[40];
   char dest[100];

   memset(dest, '\0', sizeof(dest));
   strncpy(src, "This is example", 10);
   strncpy(dest, src, 10);

   printf("Final copied string : %s\n", dest);

   return 0;
}

.fi
.PP
 
.SS "\fBerrno_t\fP strncpy_s (char *restrict dest, rsize_t dest_max, const char *restrict src, rsize_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Check arguments and copy at most \fCn\fP bytes of the \fCsrc\fP string, including the terminating null byte ('\\0') to the \fCdest\fP sized buffer\&. 
.PP
\fBParameters:\fP
.RS 4
\fIdest\fP pointer to destination string\&. 
.br
\fIdest_max\fP max number of bytes to modify in the dest\&. 
.br
\fIsrc\fP pointer to source string\&. 
.br
\fIn\fP maximal number of bytes to copy if string does not have \\0 terminator\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP function completed work with success\&. 
.br
\fI!=0\fP function completed work with error\&. 
.RE
.PP

.SS "size_t strnlen (const char * s, size_t n)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Calculate the length of the fixed-size string \fCs\fP, excluding the terminating null byte ('\\0')\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to string\&. 
.br
\fIn\fP maximal number of bytes to scan\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
number of bytes in the string, or \fCn\fP if string is nonger than \fCn\fP\&.
.RE
.PP
Example: 
.PP
.nf
int main ()
{
   char string[32] = "hello, world";
   printf("String length is %zu\n", strnlen(string, 10));
   return 0;
}

.fi
.PP
 
.SS "size_t strnlen_s (const char * s, size_t s_max)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Check arguments and calculate the length of the \fCs\fP fixed-size string, excluding the terminating null byte ('\\0')\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP pointer to string\&. 
.br
\fIs_max\fP maximal number of bytes to scan\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP \fCs\fP is a null pointer\&. 
.br
\fI!=0\fP number of symbols that precede the terminating null character\&. 
.RE
.PP

.SS "char* strrchr (const char * s, int c)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Find last occurence of character \fCc\fP in string \fCs\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to string to search in\&. 
.br
\fIc\fP character to seach\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to matched character, or \fCNULL\fP if not found\&.
.RE
.PP
Example: 
.PP
.nf
char str[] = "This is a sample string";
char * pch;
printf ("Looking for the 's' character in \"%s\"\&.\&.\&.\n",str);
pch=strrchr(str,'s');
while (pch != NULL)
{
   printf ("found at %d\n",pch-str+1);
   pch = strrchr(pch+1,'s');
}

.fi
.PP
 
.SS "size_t strspn (const char * s, const char * accept)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Calculate the length (in bytes) of the initial segment of s which consists entirely of bytes in accept\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to string to search in\&. 
.br
\fIaccept\fP String containing the characters to match\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
number of bytes in the initial segment of s which consist only of bytes from accept\&. 
.RE
.PP

.SS "char* strstr (const char * text, const char * pattern)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Find the first occurrence of the substring \fCpattern\fP in the string \fCtext\fP\&. The terminating null bytes ('\\0') are not compared\&. 
.PP
\fBParameters:\fP
.RS 4
\fItext\fP Pointer to buffer with text for scan\&. 
.br
\fIpattern\fP Pointer to pattern to find in text\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
pointer to substring, or \fCNULL\fP if substring is not found\&.
.RE
.PP
Example: 
.PP
.nf
int main()
{
   const char text [20] = "ExamplePoint";
   const char pattern [10] = "Point";
   char *ret;

   ret = strstr(text, pattern);

   printf("The substring is: %s\n", ret);

   return 0;
}

.fi
.PP
 
.SS "double strtod (const char * nptr, char ** endptr)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
the initial portion of the string pointed to by \fCnptr\fP to double\&. 
.PP
\fBNote:\fP
.RS 4
The expected form of the (initial portion of the) string is optional leading white space, an optional plus ('+') or minus sign ('-') and then either 
.br
 (i) a decimal number\&. 
.br
 (ii) a hexadecimal number\&. 
.br
 (iii) an infinity\&. 
.br
 (iv) a NAN (not-a-number)\&. 
.br
 A decimal number consists of a nonempty sequence of decimal digits possibly containing a radix character (decimal point, locale-dependent, usually '\&.'), optionally followed by a decimal exponent\&. A decimal exponent consists of an 'E' or 'e', followed by an optional plus or minus sign, followed by a nonempty sequence of decimal digits, and indicates multiplication by a power of 10\&. A hexadecimal number consists of a '0x' or '0X' followed by a nonempty sequence of hexadecimal digits possibly containing a radix character, optionally followed by a binary exponent\&. A binary exponent consists of a 'P' or 'p', followed by an optional plus or minus sign, followed by a nonempty sequence of decimal digits, and indicates multiplication by a power of 2\&. At least one of radix character and binary exponent must be present\&. An infinity is either 'INF' or 'INFINITY', disregarding case\&. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fInptr\fP The start of the string\&. 
.br
\fIendptr\fP A pointer to the end of the parsed string will be placed here\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fIresult\fP conversion is success\&. 
.br
\fIHUGE_VAL\fP if an overflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&. 
.br
\fI-HUGE_VAL\fP if an underflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&. 
.RE
.PP

.SS "float strtof (const char * nptr, char ** endptr)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
the initial portion of the string pointed to by \fCnptr\fP to float\&. 
.PP
\fBNote:\fP
.RS 4
The expected form of the (initial portion of the) string is optional leading white space as recognized by isspace(3), an optional plus ('+') or minus sign ('-') and then either 
.br
 (i) a decimal number\&. 
.br
 (ii) a hexadecimal number\&. 
.br
 (iii) an infinity\&. 
.br
 (iv) a NAN (not-a-number)\&. 
.br
 A decimal number consists of a nonempty sequence of decimal digits possibly containing a radix character (decimal point, locale-dependent, usually '\&.'), optionally followed by a decimal exponent\&. A decimal exponent consists of an 'E' or 'e', followed by an optional plus or minus sign, followed by a nonempty sequence of decimal digits, and indicates multiplication by a power of 10\&. A hexadecimal number consists of a '0x' or '0X' followed by a nonempty sequence of hexadecimal digits possibly containing a radix character, optionally followed by a binary exponent\&. A binary exponent consists of a 'P' or 'p', followed by an optional plus or minus sign, followed by a nonempty sequence of decimal digits, and indicates multiplication by a power of 2\&. At least one of radix character and binary exponent must be present\&. An infinity is either 'INF' or 'INFINITY', disregarding case\&. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fInptr\fP The start of the string\&. 
.br
\fIendptr\fP A pointer to the end of the parsed string will be placed here\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fIresult\fP conversion is success\&. 
.br
\fIHUGE_VAL\fP if an overflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&. 
.br
\fI-HUGE_VAL\fP if an underflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&. 
.RE
.PP

.SS "char* strtok (char * str, const char * delim)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Function breaks a string into a sequence of zero or more nonempty tokens\&. This function is MT-unsafe, i\&.e\&. it's not safe to call in a multithreaded programs
.PP
\fBParameters:\fP
.RS 4
\fIstr\fP The string to be parsed\&. 
.br
\fIdelim\fP The argument specifies a set of bytes that delimit the tokens in the parsed string\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
a pointer to a null-terminated string containing the next token\&.
.RE
.PP
.PP
.nf
char str[] = "- This, a sample string\&.";
char *pch;
printf("Splitting string \"%s\" into tokens:\n",str);
pch = strtok(str, " ,\&.-");
while (pch != NULL)
{
    printf("%s\n", pch);
    pch = strtok(NULL, " ,\&.-");
}
return 0;
.fi
.PP
 
.SS "char* strtok_r (char *_restrict_ s, const char *_restrict_ sep, char **_restrict_ p)"

.PP
\fC#include <\fBstring\&.h\fP>\fP
.PP
Function breaks a string into a sequence of zero or more nonempty tokens\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP The string to be parsed\&. 
.br
\fIsep\fP The argument specifies a set of bytes that delimit the tokens in the parsed string\&. 
.br
\fIp\fP used internally by \fBstrtok_r()\fP in order to maintain context between successive calls that parse the same string\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
a pointer to a null-terminated string containing the next token\&. 
.RE
.PP

.SS "long strtol (const char * nptr, char ** endptr, int base)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Convert the initial part of the string in \fCnptr\fP to a long integer value according to the given \fCbase\fP, which must be between 2 and 36 inclusive, or be the special value 0\&. 
.PP
\fBNote:\fP
.RS 4
The string may begin with an arbitrary amount of white spaces followed by a single optional '+' or '-' sign\&. If \fCbase\fP is zero or 16, the string may then include a '0x' prefix, and the number will be read in \fCbase\fP 16; otherwise, a zero \fCbase\fP is taken as 10 (decimal) unless the next character is '0', in which case it is taken as 8 (octal)\&. The remainder of the string is converted to a long int value in the obvious manner, stopping at the first character which is not a valid digit in the given \fCbase\fP\&. (In bases above 10, the letter 'A' in either uppercase or lowercase represents 10, 'B' represents 11, and so forth, with 'Z' representing 35\&.) 
.RE
.PP
\fBParameters:\fP
.RS 4
\fInptr\fP The start of the string 
.br
\fIendptr\fP A pointer to the end of the parsed string will be placed here 
.br
\fIbase\fP The number base to use 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
result of conversion on success
.IP "\(bu" 2
LONG_MIN if an underflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&.
.IP "\(bu" 2
LONG_MAX if an overflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&. 
.PP
.RE
.PP

.SS "long double strtold (const char * nptr, char ** endptr)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
the initial portion of the string pointed to by \fCnptr\fP to long double\&. 
.PP
\fBNote:\fP
.RS 4
The expected form of the (initial portion of the) string is optional leading white space as recognized by isspace(3), an optional plus ('+') or minus sign ('-') and then either 
.br
 (i) a decimal number\&. 
.br
 (ii) a hexadecimal number\&. 
.br
 (iii) an infinity\&. 
.br
 (iv) a NAN (not-a-number)\&. 
.br
 A decimal number consists of a nonempty sequence of decimal digits possibly containing a radix character (decimal point, locale-dependent, usually '\&.'), optionally followed by a decimal exponent\&. A decimal exponent consists of an 'E' or 'e', followed by an optional plus or minus sign, followed by a nonempty sequence of decimal digits, and indicates multiplication by a power of 10\&. A hexadecimal number consists of a '0x' or '0X' followed by a nonempty sequence of hexadecimal digits possibly containing a radix character, optionally followed by a binary exponent\&. A binary exponent consists of a 'P' or 'p', followed by an optional plus or minus sign, followed by a nonempty sequence of decimal digits, and indicates multiplication by a power of 2\&. At least one of radix character and binary exponent must be present\&. An infinity is either 'INF' or 'INFINITY', disregarding case\&. 
.RE
.PP
\fBParameters:\fP
.RS 4
\fInptr\fP The start of the string\&. 
.br
\fIendptr\fP A pointer to the end of the parsed string will be placed here\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fIresult\fP conversion is success\&. 
.br
\fIHUGE_VAL\fP if an overflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&. 
.br
\fI-HUGE_VAL\fP if an underflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&. 
.RE
.PP

.SS "long long strtoll (const char * nptr, char ** endptr, int base)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Convert the initial part of the string in \fCnptr\fP to a long long integer value according to the given \fCbase\fP, which must be between 2 and 36 inclusive, or be the special value 0\&. 
.PP
\fBNote:\fP
.RS 4
The string may begin with an arbitrary amount of white spaces (as determined by isspace(3)) followed by a single optional '+' or '-' sign\&. If \fCbase\fP is zero or 16, the string may then include a '0x' prefix, and the number will be read in \fCbase\fP 16; otherwise, a zero \fCbase\fP is taken as 10 (decimal) unless the next character is '0', in which case it is taken as 8 (octal)\&. The remainder of the string is converted to a long int value in the obvious manner, stopping at the first character which is not a valid digit in the given \fCbase\fP\&. (In bases above 10, the letter 'A' in either uppercase or lowercase represents 10, 'B' represents 11, and so forth, with 'Z' representing 35\&.) 
.RE
.PP
\fBParameters:\fP
.RS 4
\fInptr\fP The start of the string 
.br
\fIendptr\fP A pointer to the end of the parsed string will be placed here 
.br
\fIbase\fP The number base to use 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
result of conversion on success
.IP "\(bu" 2
LLONG_MIN if an underflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&.
.IP "\(bu" 2
LLONG_MAX if an overflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&. 
.PP
.RE
.PP

.SS "unsigned long strtoul (const char * cp, char ** endp, int base)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Convert the initial part of the string in \fCnptr\fP to a unsigned long integer value according to the given \fCbase\fP, which must be between 2 and 36 inclusive, or be the special value 0\&. 
.PP
\fBNote:\fP
.RS 4
The string may begin with an arbitrary amount of white spaces followed by a single optional '+' or '-' sign\&. If \fCbase\fP is zero or 16, the string may then include a '0x' prefix, and the number will be read in \fCbase\fP 16; otherwise, a zero \fCbase\fP is taken as 10 (decimal) unless the next character is '0', in which case it is taken as 8 (octal)\&. The remainder of the string is converted to a long int value in the obvious manner, stopping at the first character which is not a valid digit in the given \fCbase\fP\&. (In bases above 10, the letter 'A' in either uppercase or lowercase represents 10, 'B' represents 11, and so forth, with 'Z' representing 35\&.) 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIcp\fP The start of the string\&. 
.br
\fIendp\fP A pointer to the end of the parsed string will be placed here\&. 
.br
\fIbase\fP The number base to use\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fIresult\fP conversion is success\&. 
.br
\fIULONG_MAX\fP if an overflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&. 
.RE
.PP

.SS "unsigned long long strtoull (const char * cp, char ** endp, int base)"

.PP
\fC#include <\fBstdlib\&.h\fP>\fP
.PP
Convert the initial part of the string in \fCnptr\fP to a unsigned long long integer value according to the given \fCbase\fP, which must be between 2 and 36 inclusive, or be the special value 0\&. 
.PP
\fBNote:\fP
.RS 4
The string may begin with an arbitrary amount of white spaces (as determined by isspace(3)) followed by a single optional '+' or '-' sign\&. If \fCbase\fP is zero or 16, the string may then include a '0x' prefix, and the number will be read in \fCbase\fP 16; otherwise, a zero \fCbase\fP is taken as 10 (decimal) unless the next character is '0', in which case it is taken as 8 (octal)\&. The remainder of the string is converted to a long int value in the obvious manner, stopping at the first character which is not a valid digit in the given \fCbase\fP\&. (In bases above 10, the letter 'A' in either uppercase or lowercase represents 10, 'B' represents 11, and so forth, with 'Z' representing 35\&.) 
.RE
.PP
\fBParameters:\fP
.RS 4
\fIcp\fP The start of the string\&. 
.br
\fIendp\fP A pointer to the end of the parsed string will be placed here\&. 
.br
\fIbase\fP The number base to use\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fIresult\fP conversion is success\&. 
.br
\fIULONG_MAX\fP if an overflow occurs\&. \fBerrno\fP is set to \fBERANGE\fP\&. 
.RE
.PP

.SS "\fBtime_t\fP time (\fBtime_t\fP * time)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
Get the current calendar time as a value of type \fBtime_t\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fItime\fP Pointer to an object of type \fBtime_t\fP\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
The current calendar time as a \fBtime_t\fP object\&. 
.RE
.PP

.SS "void timeadd (const struct timespec * a, const struct timespec * b, struct timespec * res)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
The function adds two dates\&. 
.PP
\fBParameters:\fP
.RS 4
\fIa\fP Pointer to parameter to add\&. 
.br
\fIb\fP Pointer to parameter to add\&. 
.br
\fIres\fP Pointer to parameter to save result\&. 
.RE
.PP

.SS "int64_t timespec_to_ms (const struct timespec * a)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
The function converts time from timespec format to milliseconds\&. 
.PP
\fBParameters:\fP
.RS 4
\fIa\fP Pointer to timespec structure\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fItime\fP in milliseconds\&. 
.RE
.PP

.SS "uint64_t timespec_to_nsec (const struct timespec * a)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
The function converts time from timespec format to nanoseconds\&. 
.PP
\fBParameters:\fP
.RS 4
\fIa\fP Pointer to timespec structure\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fItime\fP in nanoseconds\&. 
.RE
.PP

.SS "void timesub (const struct timespec * a, const struct timespec * b, struct timespec * res)"

.PP
\fC#include <\fBtime\&.h\fP>\fP
.PP
The function subtracts two dates\&. 
.PP
\fBParameters:\fP
.RS 4
\fIa\fP Pointer to parameter to subtract\&. 
.br
\fIb\fP Pointer to parameter to subtract\&. 
.br
\fIres\fP Pointer to parameter to save result\&. 
.RE
.PP

.SS "static int tolower (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Convert uppercase letter to lowercase\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for converting 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
the value of the converted letter,
.IP "\(bu" 2
\fCc\fP if the conversion was not possible\&. 
.PP
.RE
.PP

.SS "static int toupper (int c)\fC [static]\fP"

.PP
\fC#include <\fBctype\&.h\fP>\fP
.PP
Convert lowercase letter to uppercase\&. 
.PP
\fBParameters:\fP
.RS 4
\fIc\fP symbol for converting 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
the value of the converted letter,
.IP "\(bu" 2
\fCc\fP if the conversion was not possible\&. 
.PP
.RE
.PP

.SS "int unlink (const char * pathname)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Remove a link to a file\&. 
.PP
\fBParameters:\fP
.RS 4
\fIpathname\fP name of the file to remove link on it\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP on success\&. 
.br
\fI-1\fP on error\&. \fBerrno\fP is set appropriately\&. 
.RE
.PP

.SS "void uuid_clear (\fBuuid_t\fP * uu)"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fP
.PP
set value to zero UUID\&. 
.PP
\fBParameters:\fP
.RS 4
\fIuu\fP value to cleanup\&. 
.RE
.PP

.SS "int uuid_compare (const \fBuuid_t\fP * uu1, const \fBuuid_t\fP * uu2)"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fP
.PP
Compare the two supplied uuid variables \fCuu1\fP and \fCuu2\fP to each other\&. 
.PP
\fBParameters:\fP
.RS 4
\fIuu1\fP first value to compare\&. 
.br
\fIuu2\fP second value to compare\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP - values are the same\&. 
.br
\fI<0\fP \fCuu2\fP value is lexigraphically greater than \fCuu1\fP\&. 
.br
\fI>0\fP \fCuu2\fP value is lexigraphically less than \fCuu1\fP\&. 
.RE
.PP

.SS "void uuid_generate (\fBuuid_t\fP * out)"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fP
.PP
The \fCuuid_generate\fP function creates a new universally unique identifier (UUID)\&. 
.PP
\fBParameters:\fP
.RS 4
\fIout\fP generated value\&. 
.RE
.PP

.SS "int uuid_is_null (const \fBuuid_t\fP * uu)"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fP
.PP
Check if UUID is null\&. 
.PP
\fBParameters:\fP
.RS 4
\fIuu\fP value to check\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP UUID is not NULL\&. 
.br
\fI1\fP otherwise\&. 
.RE
.PP

.SS "int uuid_parse (const char * in, \fBuuid_t\fP * uu)"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fP
.PP
Convert an input UUID string into binary representation\&. Function converts the UUID string given by \fCin\fP into the binary representation\&. The input UUID is a string of the form 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb (in printf(3) format '%08x-%04x-%04x-%04x-%012x', 36 bytes plus the trailing '\\0')\&.
.PP
\fBParameters:\fP
.RS 4
\fIin\fP string value to convert\&. 
.br
\fIuu\fP binary UUID representation\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI0\fP upon successfully parsing the input string\&. 
.br
\fI-1\fP on failure\&. 
.RE
.PP

.SS "void uuid_unparse (const \fBuuid_t\fP * uu, char * out)"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fP
.PP
Convert binary representation of UUID to string\&. 
.PP
\fBParameters:\fP
.RS 4
\fIuu\fP value to convert\&. 
.br
\fIout\fP textual representation in lowercase format \fCxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\fP\&. 
.RE
.PP

.SS "void uuid_unparse_upper (const \fBuuid_t\fP * uu, char * out)"

.PP
\fC#include <\fBuuid/uuid\&.h\fP>\fP
.PP
Convert binary representation of UUID to string\&. 
.PP
\fBParameters:\fP
.RS 4
\fIuu\fP value to convert\&. 
.br
\fIout\fP textual representation in uppercase format \fCXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\fP\&. 
.RE
.PP

.SS "int vasprintf (char ** strp, const char * fmt, va_list args)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
print to allocated string\&. 
.PP
\fBParameters:\fP
.RS 4
\fIargs\fP arguments for printing\&. 
.br
\fIstrp\fP Pointer to newly allocated string or NULL(if the function failed)\&. 
.br
\fIfmt\fP Format string\&. 
.br
\fI\&.\&.\&.\fP Variable arguments for printing\&.
.RE
.PP
The functions \fBasprintf()\fP and \fBvasprintf()\fP are analogs of \fBsprintf()\fP and \fBvsprintf()\fP, except that they allocate a string large enough to hold the output including the terminating null byte, and return a pointer to it via the first argument\&. This pointer should be passed to \fBfree()\fP to release the allocated storage when it is no longer needed\&. 
.br
 These functions are Blowfish extensions, not in C or POSIX\&. They are also available under *BSD and GNU/Linux\&. The GNU/Linux implementation leaves strp in undefined state in case of error\&.
.PP
\fBReturn values:\fP
.RS 4
\fI>=0\fP number of bytes printed if succeed 
.br
\fI-1\fP if failed, and set strp to NULL 
.RE
.PP

.SS "int vasprintf_s (char ** strp, const char * fmt, va_list args)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
Print to allocated string in secure mode\&. 
.PP
\fBParameters:\fP
.RS 4
\fIstrp\fP Pointer to newly allocated string or NULL(if the function failed)\&. 
.br
\fIfmt\fP Format string\&. 
.br
\fIargs\fP arguments for printing\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI>=0\fP number of bytes printed if succeed 
.br
\fI-1\fP if failed, and set strp to NULL 
.RE
.PP

.SS "int vfprintf (FILE *_restrict_ stream, const char *_restrict_ fmt, va_list ap)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
The \fBvfprintf()\fP is equivalent to the \fBfprintf()\fP, but uses an argument list\&. 
.PP
\fBParameters:\fP
.RS 4
\fIstream\fP A writeable file handle\&. 
.br
\fIfmt\fP Format specification of output string\&. 
.br
\fIap\fP Value identifying a variable arguments list initialized with \fCva_start\fP\&. \fCva_list\fP is a special type\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI>=0\fP number of characters printed if succeed\&. 
.br
\fI-1\fP if error occurred\&. 
.RE
.PP

.SS "int vsnprintf (char * buffer, size_t size, const char * format, va_list args)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
Write formatted data from variable argument list to sized buffer\&. 
.PP
\fBParameters:\fP
.RS 4
\fIbuffer\fP Pointer to a buffer where the resulting C-string is stored\&. 
.br
\fIsize\fP size of the buffer\&. 
.br
\fIformat\fP C string that contains a format string\&. 
.br
\fIargs\fP A value identifying a variable arguments list initialized with \fCva_start\fP\&. \fCva_list\fP is a special type\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
The number of characters that would have been written if size had been sufficiently large, not counting the terminating null character\&. If an encoding error occurs, a negative number is returned\&. Notice that only when this returned value is non-negative and less than size, the string has been completely written\&.
.RE
.PP
Example: 
.PP
.nf
#include <stdio\&.h>
#include <stdarg\&.h>

void PrintFError ( const char * format, \&.\&.\&. )
{
char buffer[256];
va_list args;
va_start (args, format);
vsnprintf (buffer,256,format, args);
perror (buffer);
va_end (args);
}

int main ()
{
FILE * pFile;
char szFileName[]="myfile\&.txt";

pFile = fopen (szFileName,"r");
if (pFile == NULL)
PrintFError ("Error opening '%s'",szFileName);
else
{
fclose (pFile);
}
return 0;
}

.fi
.PP
 
.SS "int vsnprintf_s (char *restrict s, rsize_t n, const char *restrict format, va_list arg)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
Write formatted data from variable argument list to sized buffer\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to a buffer where the resulting C-string is stored\&. 
.br
\fIn\fP size of the buffer\&. 
.br
\fIformat\fP C string that contains a format string\&. 
.br
\fIarg\fP A value identifying a variable length arguments list initialized with \fCva_start\fP\&. \fCva_list\fP is a special type\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
The number of characters that would have been written if size had been sufficiently large, not counting the terminating null character\&. If an encoding error or constrain violation occur, a negative number is returned\&. Notice that only when this returned value is non-negative and less than size, the string has been completely written\&. 
.RE
.PP

.SS "int vsprintf (char * buffer, const char * format, va_list args)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
Write formatted data from variable argument list to string\&. 
.PP
\fBParameters:\fP
.RS 4
\fIbuffer\fP Pointer to a buffer where the resulting C-string is stored\&. 
.br
\fIformat\fP C string that contains a format string\&. 
.br
\fIargs\fP A value identifying a variable arguments list initialized with \fCva_start\fP\&. \fCva_list\fP is a special type\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fInumber\fP of characters printed if succeed\&. 
.br
\fI-1\fP if error occurred\&.
.RE
.PP
Example: 
.PP
.nf
#include <stdio\&.h>
#include <stdarg\&.h>

void PrintFError ( const char * format, \&.\&.\&. )
{
   char buffer[256];
   va_list args;
   va_start (args, format);
   vsprintf (buffer,format, args);
   perror (buffer);
   va_end (args);
}

int main ()
{
   FILE * pFile;
   char szFileName[]="myfile\&.txt";

   pFile = fopen (szFileName,"r");
   if (pFile == NULL)
      PrintFError ("Error opening '%s'",szFileName);
   else
   {
      fclose (pFile);
   }
   return 0;
}

.fi
.PP
 
.SS "int vsprintf_s (char *restrict s, rsize_t n, const char *restrict format, va_list arg)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
Write formatted data from variable length argument list to string\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Pointer to a buffer where the resulting C-string is stored\&. 
.br
\fIn\fP buffer size in characters\&. 
.br
\fIformat\fP C string that contains a format string\&. 
.br
\fIarg\fP A value identifying a variable arguments list initialized\&. with \fCva_start\fP\&. \fCva_list\fP is a special type\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fInumber\fP of characters printed if succeed\&. 
.br
\fI0\fP if constrain violation occurred\&. 
.br
\fI-1\fP if encoding error occurred\&. 
.RE
.PP

.SS "int vsscanf (const char * buffer, const char * fmt, va_list args)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
vsscanf unformat a buffer into a list of arguments\&. 
.PP
\fBParameters:\fP
.RS 4
\fIbuffer\fP input buffer\&. 
.br
\fIfmt\fP format of buffer\&. 
.br
\fIargs\fP value identifying a variable arguments list initialized with \fCva_start\fP\&. \fCva_list\fP is a special type\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI>=0\fP On success, the function returns the number of items in the argument list successfully filled\&. This count can match the expected number of items or be less -even zero- in the case of a matching failure\&. 
.br
\fIEOF\fP In the case of an input failure before any data could be successfully interpreted\&. 
.RE
.PP

.SS "int vsscanf_s (const char *restrict s, const char *restrict format, va_list arg)"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
vsscanf unformat a buffer into a list of arguments\&. 
.PP
\fBParameters:\fP
.RS 4
\fIs\fP Input buffer\&. 
.br
\fIformat\fP Format of buffer\&. 
.br
\fIarg\fP Value identifying a variable arguments list initialized with \fCva_start\fP\&. \fCva_list\fP is a special type\&. 
.RE
.PP
\fBReturn values:\fP
.RS 4
\fI>=0\fP On success, the function returns the number of items in the argument list successfully filled\&. This count can match the expected number of items or be less -even zero- in the case of a matching failure\&. 
.br
\fIEOF\fP In the case of an input failure before any data could be successfully interpreted\&. 
.RE
.PP

.SS "\fBssize_t\fP write (int fd, const void * buf, size_t count)"

.PP
\fC#include <\fBunistd\&.h\fP>\fP
.PP
Attempt to write \fCcount\fP bytes from buffer pointed to by \fCbuf\fP to the file associated with the open file descriptor, \fCfd\fP\&. 
.PP
\fBParameters:\fP
.RS 4
\fIfd\fP File descriptor\&. 
.br
\fIbuf\fP Pointer to buffer from to read\&. 
.br
\fIcount\fP Number of bytes to write\&. 
.RE
.PP
\fBReturns:\fP
.RS 4
.IP "\(bu" 2
non-negative integer indicating the number of bytes actually written - on success\&.
.IP "\(bu" 2
-1 and set \fBerrno\fP to indicate the error - otherwise\&. 
.PP
.RE
.PP

.SH "Variable Documentation"
.PP 
.SS "FILE* stdin"

.PP
\fC#include <\fBstdio\&.h\fP>\fP
.PP
Standard input stream (stub)\&. PRIVATE 
.SH "Author"
.PP 
Generated automatically by Doxygen for Samsung Internal API reference from the source code\&.
