int g_rm_temp_dir(void); void g_init(constchar *app_name); void g_deinit(void); void g_printf(constchar *format, ...) printflike(1, 2); void g_sprintf(char *dest, constchar *format, ...) \
printflike(2, 3); int g_snprintf(char *dest, int len, constchar *format, ...) \
printflike(3, 4); void g_writeln(constchar *format, ...) printflike(1, 2); void g_write(constchar *format, ...) printflike(1, 2); void g_hexdump(constchar *p, int len); int g_getchar(void); int g_tcp_set_no_delay(int sck); int g_tcp_set_keepalive(int sck); int g_tcp_socket(void); int g_sck_set_send_buffer_bytes(int sck, int bytes); int g_sck_get_send_buffer_bytes(int sck, int *bytes); int g_sck_set_recv_buffer_bytes(int sck, int bytes); int g_sck_get_recv_buffer_bytes(int sck, int *bytes); /** *SetSO_REUSEADDRforasocket * *Usebeforebinding,ifappropriate. *@paramsckSocket *@return0forsuccess
*/ int g_sck_set_reuseaddr(int sck); int g_sck_local_socket(void); int g_sck_local_socketpair(int sck[2]); int g_sck_vsock_socket(void); int g_sck_get_peer_cred(int sck, int *pid, int *uid, int *gid); void g_sck_close(int sck); int g_tcp_connect(int sck, constchar *address, constchar *port); int g_sck_local_connect(int sck, constchar *port); int g_sck_set_non_blocking(int sck); int g_tcp_bind(int sck, constchar *port); int g_sck_local_bind(int sck, constchar *port); int g_sck_vsock_bind(int sck, constchar *port); int g_sck_vsock_bind_address(int sck, constchar *port, constchar *address); int g_tcp_bind_address(int sck, constchar *port, constchar *address); int g_sck_listen(int sck); int g_sck_accept(int sck); int g_sck_recv(int sck, void *ptr, unsignedint len, int flags); int g_sck_send(int sck, constvoid *ptr, unsignedint len, int flags); /** *Receivesdataandfiledescriptorsonaunixdomainsocket * *@paramsck-Sockettoreceivedata+filedescriptorsfrom *@paramptr-Pointertobufferforincomingdata *@paramlen-Lengthofdata.Mustbe>0 *@param[out]fds-Arrayoffiledescriptors *@param[in]maxfd-Maxnumberofelementsinfds *@param[out]fdcount-Actualnumberoffiledescriptorsreceived *@returnBytesreceived,or<0forerror. * *Iftheresultis>0butlessthanlen,thefiledescriptorshave *beenreceived.Gettherestofthedatawithnormalg_sck_recv()calls. * *fdcountmaybemorethatmaxfd.Thisindicatesthatmorefiledescriptors *werereceivedthantherewasspacefor.Theexcessfiledescriptors *areclosedanddiscarded.
*/ int g_sck_recv_fd_set(int sck, void *ptr, unsignedint len, int fds[], unsignedint maxfd, unsignedint *fdcount); /** *Sendsdataandfiledescriptorsonaunixdomainsocket * *@paramsck-Sockettosenddata+filedescriptorson *@paramptr-Datatosend *@paramlen-Lengthofdata.Mustbe>0 *@paramfds-Arrayoffiledescriptors *@paramfdcount-Numberoffiledescriptors *@returnBytessent,or<0forerror. * *Iftheresultis>0butlessthanlen,thefiledescriptorshave *beensent.Sendtherestofthedatawithnormalg_sck_send()calls.
*/ int g_sck_send_fd_set(int sck, constvoid *ptr, unsignedint len, int fds[], unsignedint fdcount); int g_sck_last_error_would_block(int sck); int g_sck_socket_ok(int sck); /** *Checkssocketwriteabilitywithanoptionalwait * *@paramsck-Sockettocheck *@parammillis-Maximummillisecondstowaitforwriteabilitytobetrue * *@noteThewaittimemaynotbereachedintheeventofanincomingsignal
* so do not use this call to impose a hard timeout */ int g_sck_can_send(int sck, int millis); /** *Checkssocketreadabilitywithanoptionalwait * *@paramsck-Sockettocheck *@parammillis-Maximummillisecondstowaitforreadabilitytobetrue * *@noteThewaittimemaynotbereachedintheeventofanincomingsignal
* so do not use this call to impose a hard timeout */ int g_sck_can_recv(int sck, int millis); int g_sck_select(int sck1, int sck2);
// Wait objects with this value are ignored by // g_set_wait_obj() / g_reset_wait_obj() / g_is_wait_obj_set() / // g_delete_wait_obj() #define NULL_WAIT_OBJ (tintptr)0
tintptr g_create_wait_obj(constchar *name);
tintptr g_create_wait_obj_from_socket(tintptr socket, int write); void g_delete_wait_obj_from_socket(tintptr wait_obj); int g_set_wait_obj(tintptr obj); int g_reset_wait_obj(tintptr obj); int g_is_wait_obj_set(tintptr obj); int g_delete_wait_obj(tintptr obj); /** *Waitforthespecifiedreadableandwriteableobjs * *Thewaitfinisheswhenatleastoneoftheobjectsbecomes *readableorwriteable * *@paramread_objsArrayofreadobjects *@paramrcountNumberofelementsinread_objs *@paramwrite_objsArrayofwriteobjects *@paramrcountNumberofelementsinwrite_objs *@parammstimeoutTimeoutinmilliseconds.<0meansaninfinitetimeout. * *@return0forsuccess.Theobjectswillneedtobepolledto *findoutwhatisreadableorwriteable. * *Anmstimeoutofzerowillreturnimmediately,although *errorconditionsmaybecheckedfor.
*/ int g_obj_wait(tintptr *read_objs, int rcount, tintptr *write_objs, int wcount, int mstimeout); void g_random(char *data, int len); int g_abs(int i); int g_memcmp(constvoid *s1, constvoid *s2, int len); int g_file_open_rw(constchar *file_name); int g_file_open_ex(constchar *file_name, int aread, int awrite, int acreate, int atrunc); int g_file_open_ro(constchar *file_name); int g_file_close(int fd); /** *Returns1ifafileisopen(i.e.thefiledescriptorisvalid) *@paramfdFiledescriptor *@return1forfileopen,0fornotopen
*/ int g_file_is_open(int fd); int g_file_read(int fd, char *ptr, int len); int g_file_write(int fd, constchar *ptr, int len); int g_file_seek(int fd, int offset); int g_file_seek_end(int fd, int offset); int g_file_lock(int fd, int start, int len); int
g_file_map(int fd, int aread, int awrite, size_t length, void **addr); int
g_munmap(void *addr, size_t length); int g_file_duplicate_on(int fd, int target_fd); int g_file_get_cloexec(int fd); int g_file_set_cloexec(int fd, int status); /** *Getalistofopenfiledescriptors * *@paramminMinFDtoconsider *@parammaxMaxFDtoconsider(+1),or-1fornolimit *@resultArrayoffiledescriptors,inascendingorder. * *Calldelete_list()ontheresultwhenyou'vefinishedwithit.
*/ struct list *g_get_open_fds(int min, int max); int g_chmod_hex(constchar *filename, int flags); int g_umask_hex(int flags); int g_chown(constchar *name, int uid, int gid); int g_mkdir(constchar *dirname); char *g_get_current_dir(char *dirname, int maxlen); int g_set_current_dir(constchar *dirname); int g_file_exist(constchar *filename); int g_file_readable(constchar *filename); int g_directory_exist(constchar *dirname); int g_executable_exist(constchar *dirname); int g_create_dir(constchar *dirname); int g_create_path(constchar *path); int g_remove_dir(constchar *dirname); int g_file_delete(constchar *filename); int g_file_get_size(constchar *filename); int g_file_get_device_number(constchar *filename); int g_file_get_inode_num(constchar *filename); long g_load_library(char *in); int g_free_library(long lib); void *g_get_proc_address(long lib, constchar *name); int g_system(constchar *aexec); char *g_get_strerror(void); int g_get_errno(void); int g_execvp(constchar *p1, char *args[]); /** *Issuesanexecvp()call * *@paramfileExecutable *@paramargvArgumentlistforexecutable. * *argvdoesnotneedtobeNULLterminated-thecalltakescare *ofthis. * *@returnOnlyifanerrorhasoccurred-useg_get_errno()orequivalent
*/ int g_execvp_list(constchar *file, struct list *argv); int g_execlp3(constchar *a1, constchar *a2, constchar *a3); /** *SetanalarmusingSIGALRM *@paramfuncSignalhandler,orNULLtocancelanalarm *@paramsecsNumberofsecondsuntilanalarmisraised *@returnNumberofsecondsremainingbeforeapreviouslyrequested *alarmisraised
*/ unsignedint g_set_alarm(void (*func)(int), unsignedint secs); /** *SetahandlerupforSIGCHLD *@paramfuncsignalhandler,orNULLtorestorethedefaulthandler *Thehandlerremainsinplaceuntilexplicitlyreplaced.
*/ void g_signal_child_stop(void (*func)(int)); /** *SetahandlerupforSIGSEGV *@paramfuncsignalhandler,orNULLtorestorethedefaulthandler *Thehandlercanonlybecalledonce,atwhichpointthe *defaulthandlerisrestored.Thisistoavoidinfiniteloops
*/ void g_signal_segfault(void (*func)(int)); /** *SetahandlerupforSIGHUP *@paramfuncsignalhandler,orNULLtorestorethedefaulthandler *Thehandlerremainsinplaceuntilexplicitlyreplaced.
*/ void g_signal_hang_up(void (*func)(int)); /** *SetahandlerupforSIGINT *@paramfuncsignalhandler,orNULLtorestorethedefaulthandler *Thehandlerremainsinplaceuntilexplicitlyreplaced.
*/ void g_signal_user_interrupt(void (*func)(int)); /** *SetahandlerupforSIGTERM *@paramfuncsignalhandler,orNULLtorestorethedefaulthandler *Thehandlerremainsinplaceuntilexplicitlyreplaced.
*/ void g_signal_terminate(void (*func)(int)); /** *SetahandlerupforSIGPIPE *@paramfuncsignalhandler,orNULLtorestorethedefaulthandler *Thehandlerremainsinplaceuntilexplicitlyreplaced.
*/ void g_signal_pipe(void (*func)(int)); /** *SetahandlerupforSIGUSR1 *@paramfuncsignalhandler,orNULLtorestorethedefaulthandler *Thehandlerremainsinplaceuntilexplicitlyreplaced.
*/ void g_signal_usr1(void (*func)(int)); int g_fork(void); int g_setgid(int pid); int g_drop_privileges(constchar *user, constchar *group); int g_initgroups(constchar *user); int g_getuid(void); int g_getgid(void); int g_setuid(int pid); int g_setsid(void); int g_getlogin(char *name, unsignedint len); int g_setlogin(constchar *name); #ifdef HAVE_SETUSERCONTEXT /** Sets the login user context (BSD systems only) *@paramuidUIDofsuer *@return0forsuccess
*/ int g_set_allusercontext(int uid); #endif int g_waitchild(struct proc_exit_status *e); int g_waitpid(int pid); struct proc_exit_status g_waitpid_status(int pid); /* *SetstheprocessgroupIDoftheindicatedprocesstothespecifiedvalue. *(POSIX.1) * *Errorsarelogged. * *Maydonothingifprocessgroupsarenotsupported
*/ int g_setpgid(int pid, int pgid); void g_clearenv(void); int g_setenv(constchar *name, constchar *value, int rewrite); char *g_getenv(constchar *name); /** *Callsg_setenv(),loggingfailures * *@paramnameNametoset *@paramvalueStringtoset$nameto *@paramrewriteSettonon-zerotoallowrewritingofexistingnames * *Unlikeg_setenv()thisfunctionreturnsnovalue.Usethisfunctionifthe *onlyreasonablethingtodoonfailureistologit.
*/ void g_setenv_log(constchar *name, constchar *value, int rewrite); int g_exit(int exit_code); int g_getpid(void); int g_sigterm(int pid); int g_sighup(int pid); /* *IsaparticularPIDactive? *@parampidPIDtocheck *Returnsboolean
*/ int g_pid_is_active(int pid); int g_getuser_info_by_name(constchar *username, int *uid, int *gid, char **shell, char **dir, char **gecos); int g_getuser_info_by_uid(int uid, char **username, int *gid, char **shell, char **dir, char **gecos); int g_getgroup_info(constchar *groupname, int *gid); /** *Checkswhetherauserisinthespecifiedgroup *@paramusernameNameofuser *@paramgidGIDofgroup *@param[out]okWhetheruserisingroup *@returnNon-zeroifasystemerroroccurred.InthisinstanceOKisnotset * *Primarygroupofusernameisalsochecked
*/ int g_check_user_in_group(constchar *username, int gid, int *ok); int g_time1(void); int g_time2(void); int g_time3(void); int g_save_to_bmp(constchar *filename, char *data, int stride_bytes, int width, int height, int depth, int bits_per_pixel); void *g_shmat(int shmid); int g_shmdt(constvoid *shmaddr); int g_gethostname(char *name, int len); int g_mirror_memcpy(void *dst, constvoid *src, int len); int g_tcp4_socket(void); int g_tcp4_bind_address(int sck, constchar *port, constchar *address); int g_tcp6_socket(void); int g_tcp6_bind_address(int sck, constchar *port, constchar *address); int g_no_new_privs(void); /** *QuerywhetherFIPSmodeisenabled * *InFIPSmode,somecryptographicalgorithmsaredisabled * *@return1->FIPSmodeenabled,0->FIPSmodedisabledorunknown
*/ int g_fips_mode_enabled(void); void
g_qsort(void *base, size_t nitems, size_t size, int (*compar)(constvoid *, constvoid *));
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.