_sock_srv.c
来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 60 行
C
60 行
/* 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 + =
减小字号Ctrl + -
显示快捷键?