dofile.c
来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C语言 代码 · 共 94 行
C
94 行
#ifndef lintstatic char *sccsid = "@(#)dofile.c 4.1 (ULTRIX) 7/17/90";#endif lint/************************************************************************ * * * Copyright (c) 1984 by * * Digital Equipment Corporation, Maynard, MA * * All rights reserved. * * * * This software is furnished under a license and may be used and * * copied only in accordance with the terms of such license and * * with the inclusion of the above copyright notice. This * * software or any other copies thereof may not be provided or * * otherwise made available to any other person. No title to and * * ownership of the software is hereby transferred. * * * * This software is derived from software received from the * * University of California, Berkeley, and from Bell * * Laboratories. Use, duplication, or disclosure is subject to * * restrictions under license agreements with University of * * California and with AT&T. * * * * The information in this software is subject to change without * * notice and should not be construed as a commitment by Digital * * Equipment Corporation. * * * * Digital assumes no responsibility for the use or reliability * * of its software on equipment which is not supplied by Digital. * * * ************************************************************************//******************************************************************* * * Modification history: * * 3Jul83 -- jmcg * Converted over to use 4.2BSD directory operations. * *******************************************************************/# include "../hdr/defines.h"# include "sys/dir.h"int nfiles;char had_dir;char had_standinp;do_file(p,func)register char *p;int (*func)();{ extern char *Ffile; char str[FILESIZE]; char ibuf[FILESIZE]; char dbuf[BUFSIZ]; DIR *iop; struct direct *dirp; register char *s; int fd; if (p[0] == '-') { had_standinp = 1; while (gets(ibuf) != NULL) { if (sccsfile(ibuf)) { Ffile = ibuf; (*func)(ibuf); nfiles++; } } } else if (exists(p) && (Statbuf.st_mode & S_IFMT) == S_IFDIR) { had_dir = 1; Ffile = p; if((iop = opendir( p)) == NULL) return; while( dirp = readdir( iop)) { sprintf(str,"%s/%s",p,dirp->d_name); if(sccsfile(str)) { Ffile = str; (*func)(str); nfiles++; } } closedir(iop); } else { Ffile = p; (*func)(p); nfiles++; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?