📄 _sock_srv.c
字号:
/* posix */#include <sys/types.h>#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <fcntl.h>#include <errno.h>/* socket extensions */#include <sys/uio.h>#include <sys/socket.h>#include "priv.h"void_sock_srvname(char *npath, char *path){ char *p; strcpy(npath, "/srv/UD."); p = strrchr(path, '/'); if(p == 0) p = path; else p++; strcat(npath, p);}int_sock_srv(char *path, int fd){ int sfd; char msg[128]; /* change the path to something in srv */ _sock_srvname(msg, path); /* remove any previous instance */ unlink(msg); /* put the fd in /srv and then close it */ sfd = creat(msg, 0666); if(sfd < 0){ close(fd); _syserrno(); return -1; } sprintf(msg, "%d", fd); if(write(sfd, msg, strlen(msg)) < 0){ _syserrno(); close(sfd); close(fd); return -1; } close(sfd); close(fd); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -