GitHub镜像站搭建:3种高效方案全解析

核心内容摘要

宝可梦数据合法化完全指南:从痛点解决到高效管理
cv_resnet18_ocr-detection性能优化:调整检测阈值提升识别效果

3个高效技巧掌握二进制文件编辑:从入门到精通的实用指南

从标准输入拷贝文件或从指定磁盘文件拷贝到标准输出。

#include sys/types.h #include sys/stat.h #include fcntl.h #include unistd.h #include stdio.h #include stdlib.h #include errno.h #include string.h #define DEF_MODE S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH #define DEF_UMASK S_IWGRP|S_IWOTH #define RIO_BUFSIZE 8192 #define MAXLINE 10 typedef struct { int rio_fd; /* Descriptor for this internal buf */ int rio_cnt; /* unread bytes in internal buf */ char *rio_bufptr; /* Next unread bytes in internal buf */ char rio_buf[RIO_BUFSIZE]; /* Internal buffer */ } rio_t; void rio_readinitb(rio_t *rp, int fd); ssize_t rio_readlineb(rio_t *rp, void *usrbuf, size_t maxlen); static ssize_t rio_read(rio_t *rp, char *usrbuf, size_t n); ssize_t rio_writen(int fd, void *usrbuf, size_t n); int main(int argc, char **argv) { int n,fd1; rio_t rio; char buf[MAXLINE]; if((argc!

(argc!

) { fprintf(stderr,usage : %s infile\n,argv[0]); exit(

; } if(argc

{ int fd; if((fdopen(argv[1], O_RDONLY,

)

{ fprintf(stderr,Couldntread%s\n,argv[1]); exit(

; } dup2(fd, STDIN_FILENO); close(fd); } rio_readinitb(rio, STDIN_FILENO); while((n rio_readlineb(rio, buf, MAXLINE)) !

rio_writen(STDOUT_FILENO, buf, n); return 0; } ssize_t rio_writen(int fd, void *usrbuf, size_t n) { size_t nleft n; ssize_t nwritten; char *bufp usrbuf; while (nleft

{ if ((nwritten write(fd, bufp, nleft))

{ if (errno EINTR) /* Interrupted by sig handler return */ nwritten 0; /* and call write() again */ else return -1; /* errno set by write() */ } nleft - nwritten; bufp nwritten; } return n; } void rio_readinitb(rio_t *rp, int fd) { rp-rio_fd fd; rp-rio_cnt 0; rp-rio_bufptr rp-rio_buf; } ssize_t rio_readlineb(rio_t *rp, void *usrbuf, size_t maxlen) { int n, rc; char c, *bufp usrbuf; for (n 1; n maxlen; n) { if ((rc rio_read(rp, c,

)

{ *bufp c; if (c \n) break; } else if (rc

{ if (n

return 0; /* EOF, no data read */ else break; /* EOF, some data was read */ } else return -1; /* Error */ } *bufp 0; return n; } static ssize_t rio_read(rio_t *rp, char *usrbuf, size_t n) { int cnt; while (rp-rio_cnt

{ /* Refill if buf is empty */ rp-rio_cnt read(rp-rio_fd, rp-rio_buf, sizeof(rp-rio_buf)); if (rp-rio_cnt

{ if (errno ! EINTR) /* Interrupted by sig handler return */ return -1; } else if (rp-rio_cnt

/* EOF */ return 0; else rp-rio_bufptr rp-rio_buf; /* Reset buffer ptr */ } /* Copy min(n, rp-rio_cnt) bytes from internal buf to user buf */ cnt n; if (rp-rio_cnt n) cnt rp-rio_cnt; memcpy(usrbuf, rp-rio_bufptr, cnt); rp-rio_bufptr cnt; rp-rio_cnt - cnt; return cnt; }

星陨计划18+-星陨计划应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123