📄 util.c
字号:
#include <unistd.h>#include <dlfcn.h>#include <errno.h>#include <stdio.h>intxread(int sd, void *buf, size_t len){ char *p = (char *)buf; size_t nrecv = 0; ssize_t rv; while (nrecv < len) { rv = read(sd, p, len - nrecv); if (0 > rv && errno == EINTR) continue; if (0 > rv) return -1; if (0 == rv) return 0; nrecv += rv; p += rv; } return nrecv;}intxwrite(int sd, const void *buf, size_t len){ char *p = (char *)buf; size_t nsent = 0; ssize_t rv; while (nsent < len) { rv = write(sd, p, len - nsent); if (0 > rv && (errno == EINTR || errno == EAGAIN)) continue; if (0 > rv) return -1; nsent += rv; p += rv; } return nsent;}voidcall_if_present(char *name, char *lib){ void *h; void (*f)(); h = dlopen(lib, RTLD_NOW); if (!h) return; f = dlsym(h, name); if (!f) return; f();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -