📄 checkfile.c
字号:
/* * checkfile.c * takes a file descriptor and checks to see if a file is a regular * ascii file * */#include <stdio.h>#include <ctype.h>#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include "checkfile.h"#define MAXLINE 512extern char Progname[];extern int errno;unsigned char ibuf[MAXLINE];/**************************************************************************** check_file* input: filename or path (null-terminated character string)* returns: int (0 if file is a regular file, non-0 if not)** uses stat(2) to see if a file is a regular file.****************************************************************************/int check_file(fname)char *fname;{struct stat buf;int ftype; if (stat(fname, &buf) != 0) { if (errno == ENOENT) return NOSUCHFILE; else return STATFAILED; } else {/* if (S_ISREG(buf.st_mode)) { if ((ftype = samplefile(fname)) == ISASCIIFILE) { return ISASCIIFILE; } else if (ftype == ISBINARYFILE) { return ISBINARYFILE; } else if (ftype == OPENFAILED) { return OPENFAILED; } } if (S_ISDIR(buf.st_mode)) { return ISDIRECTORY; } if (S_ISBLK(buf.st_mode)) { return ISBLOCKFILE; } if (S_ISSOCK(buf.st_mode)) { return ISSOCKET; }*/ }}/***************************************************************************** samplefile* reads in the first part of a file, and checks to see that it is* all ascii.****************************************************************************//*int samplefile(fname)char *fname;{char *p;int numread;int fd; if ((fd = open(fname, O_RDONLY)) == -1) { fprintf(stderr, "open failed on filename %s\n", fname); return OPENFAILED; } if (numread = read(fd, ibuf, MAXLINE)) { close(fd); p = ibuf; while (isascii(*p++) && --numread); if (!numread) { return(ISASCIIFILE); } else { return(ISBINARYFILE); } } else { close(fd); return(ISASCIIFILE); }}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -