⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pathsearch.c

📁 主要进行大规模的电路综合
💻 C
字号:
/* * Revision Control Information * * /projects/hsis/CVS/utilities/util/pathsearch.c,v * rajeev * 1.3 * 1995/08/08 22:41:24 * *//* LINTLIBRARY */#if HAVE_SYS_FILE_H#  include <sys/file.h>#endif#if HAVE_SYS_STAT_H#  include <sys/stat.h>#endif#include "util.h"/**Function********************************************************************  Synopsis           [ Check that a given file is present and accessible ]  SideEffects        [none]******************************************************************************/static intcheck_file(filename, mode)char *filename;char *mode;{#if defined(HAVE_SYS_STAT_H)    struct stat stat_rec;    int access_char = mode[0];    int access_mode = R_OK;    /* First check that the file is a regular file. */    if (stat(filename,&stat_rec) == 0		    && (stat_rec.st_mode&S_IFMT) == S_IFREG) {	if (access_char == 'w') {	    access_mode = W_OK;	} else if (access_char == 'x') {	    access_mode = X_OK;	}	return access(filename,access_mode) == 0;    }    return 0;#else    FILE *fp;    int got_file;    if (strcmp(mode, "x") == 0) {	mode = "r";    }    fp = fopen(filename, mode);    got_file = (fp != 0);    if (fp != 0) {	(void) fclose(fp);    }    return got_file;#endif}/**Function********************************************************************  Synopsis           [ Search for a program in all possible paths ]  SideEffects        [none]******************************************************************************/char *util_path_search(prog)char *prog;{#ifdef HAVE_GETENV    return util_file_search(prog, getenv("PATH"), "x");#else    return util_file_search(prog, NIL(char), "x");#endif}char *util_file_search(file, path, mode)char *file;			/* file we're looking for */char *path;			/* search path, colon separated */char *mode;			/* "r", "w", or "x" */{    int quit;    char *buffer, *filename, *save_path, *cp;    if (path == 0 || strcmp(path, "") == 0) {	path = ".";		/* just look in the current directory */    }    save_path = path = util_strsav(path);    quit = 0;    do {	cp = strchr(path, ':');	if (cp != 0) {	    *cp = '\0';	} else {	    quit = 1;	}	/* cons up the filename out of the path and file name */	if (strcmp(path, ".") == 0) {	    buffer = util_strsav(file);	} else {	    buffer = ALLOC(char, strlen(path) + strlen(file) + 4);	    (void) sprintf(buffer, "%s/%s", path, file);	}	filename = util_tilde_expand(buffer);	FREE(buffer);	/* see if we can access it */	if (check_file(filename, mode)) {	    FREE(save_path);	    return filename;	}	FREE(filename);	path = ++cp;    } while (! quit);     FREE(save_path);    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -