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

📄 mcd.c

📁 MTOOLS version 2.0 Mtools is a public domain collection of programs to allow Unix systems t
💻 C
字号:
/* * Change MSDOS directories * * Emmet P. Gray			US Army, HQ III Corps & Fort Hood * ...!uunet!uiucuxc!fthood!egray	Attn: AFZF-DE-ENV * fthood!egray@uxc.cso.uiuc.edu	Directorate of Engineering & Housing * 					Environmental Management Office * 					Fort Hood, TX 76544-5057 */#include <stdio.h>#include "msdos.h"#include "patchlevel.h"int fd = -1;				/* the file descriptor for the device */int dir_start;				/* starting sector for directory */int dir_len;				/* length of directory (in sectors) */int dir_entries;			/* number of directory entries */int clus_size;				/* cluster size (in sectors) */char *mcwd;				/* the Current Working Directory */int fat_error;				/* FAT error detected? */main(argc, argv)int argc;char *argv[];{	FILE *fp;	char *fix_mcwd(), *strcpy(), newpath[MAX_PATH], *get_name();	char *get_path(), *pathname, *filename, drive, *strcat();	char get_drive(), *mcwd_path, *getenv(), *expand();	void exit();	if (argc > 2) {		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);		fprintf(stderr, "Usage: %s: msdosdirectory\n", argv[0]);		exit(1);	}					/* only report the mcwd */	mcwd = fix_mcwd();	if (argc == 1) {		printf("%s\n", mcwd);		exit(0);	}	drive = get_drive(argv[1]);	filename = get_name(argv[1]);	pathname = get_path(argv[1]);	if (init(drive, 0)) {		fprintf(stderr, "%s: Cannot initialize '%c:'\n", argv[0], drive);		exit(1);	}	/*	 * Move to "first guess" subdirectory, so that is_dir() can	 * search to see if filename is also a directory.	 */	if (subdir(drive, pathname)) {		fprintf(stderr, "%s: Directory not found\n", argv[0]);		exit(1);	}					/* is filename really a subdirectory? */	strcpy(newpath, pathname);	if (is_dir(filename)) {		if (newpath[strlen(newpath) -1] != '/')			strcat(newpath, "/");		strcat(newpath, filename);					/* move to real subdirectory */		if (subdir(drive, newpath)) {			fprintf(stderr, "%s: Directory not found\n", argv[0]);			exit(1);		}	}	else {		if (*filename != '\0') {			fprintf(stderr, "%s: Directory not found\n", argv[0]);			exit(1);		}	}					/* it checked out ok, so save it */	mcwd_path = getenv("MCWD");	if (mcwd_path == NULL || *mcwd_path == '\0')		mcwd_path = "$HOME/.mcwd";	if (!(fp = fopen(expand(mcwd_path), "w"))) {		fprintf(stderr, "%s: Can't open '%s' for write\n", argv[0], expand(mcwd_path));		exit(1);	}	fprintf(fp, "%c:%s\n", drive, newpath);	fclose(fp);	exit(0);}/* * stubs for read-only programs */voiddisk_flush(){	extern int disk_dirty;	disk_dirty = 0;	return;}voiddir_flush(){	extern int dir_dirty;	dir_dirty = 0;	return;}

⌨️ 快捷键说明

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