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

📄 mkdirtree.c

📁 安装DDD之前
💻 C
字号:
/* $Header: /cvsroot/lesstif/lesstif/test/Xm/filesb/mkdirtree.c,v 1.7 2001/08/14 09:14:04 amai Exp $ */#include <stdlib.h>#include <string.h>#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/param.h>#include <fcntl.h>#include <unistd.h>#include <Xm/FileSB.h>#include "mkdirtree.h"static char tmppath[MAXPATHLEN],            path1[MAXPATHLEN], path2[MAXPATHLEN], Ltdir[MAXPATHLEN];#define TmpDefault "/tmp"static const char dir_list[][MAXPATHLEN]={   "/lesstif", "/lesstif/dir1", "/lesstif/dir2"  };  static const char file_list[][MAXPATHLEN]={   "/lesstif/file1", "/lesstif/file2",    "/lesstif/dir1/file1", "/lesstif/dir1/file2", "/lesstif/dir1/file3",   "/lesstif/dir2/file1", "/lesstif/dir2/file2", "/lesstif/dir2/file3",  };static const char linkfrom_list[][MAXPATHLEN]={	"/lesstif/dir1",     "/lesstif/file1"  };static const char linkto_list[][MAXPATHLEN]={	"/lesstif/dirlink1", "/lesstif/filelink1"  };	#define CREATEDIR(x)     mkdir(x, S_IRWXU)#define CREATEFILE(x)    close(open(x,O_CREAT,S_IRUSR))#define CREATELINK(x,y)  symlink(x,y)#define MKPATH1(x)       {strcpy(path1,tmppath);strcat(path1,x);}#define MKPATH2(x)       {strcpy(path2,tmppath);strcat(path2,x);}extern intmake_tmp_dir_tree(void){  int i, rc;	  /* don't customize this.  The point of this file is to have a standard     set of directories that's not going to vary from machine to machine,     so that the sizes, etc are always the same.  For architectures     without a /tmp, this is doomed from the start, so there's no reason     to even try */  strcpy(tmppath, TmpDefault);  strcpy(Ltdir, tmppath);  strcat(Ltdir, "/lesstif");  for(i=0;i<(sizeof(dir_list)/MAXPATHLEN);i++) {          MKPATH1(dir_list[i]);          CREATEDIR(path1);  }    for(i=0;i<(sizeof(file_list)/MAXPATHLEN);i++) {	  MKPATH1(file_list[i]);	  CREATEFILE(path1);  }  if (sizeof(linkfrom_list)==sizeof(linkto_list)){    for(i=0;i<(sizeof(linkfrom_list)/MAXPATHLEN);i++) {      MKPATH1(linkfrom_list[i]);      MKPATH2(linkto_list[i]);      CREATELINK(path1, path2);    }  	    }    chdir(Ltdir);  return 0;}extern voidset_path(Widget FileBox){  XmString path,filter;  path = XmStringCreateLtoR(Ltdir, XmSTRING_DEFAULT_CHARSET);  filter = XmStringCreateLtoR("*", XmSTRING_DEFAULT_CHARSET);    XtVaSetValues(FileBox,		XmNdirectory, path,		XmNpattern, filter,		NULL);  XmStringFree(path);  XmStringFree(filter);}extern voidget_path(Widget FileBox){  XmString directory, pattern, dirmask, dirspec;  char *ptr;  XtVaGetValues(FileBox,		XmNdirectory, &directory,		XmNpattern,   &pattern,		XmNdirMask,   &dirmask,		XmNdirSpec,   &dirspec,		NULL);  if (XmStringGetLtoR(directory, XmFONTLIST_DEFAULT_TAG, &ptr)) {     fprintf(stdout, "directory=%s\n", ptr);  }  if (XmStringGetLtoR(pattern, XmFONTLIST_DEFAULT_TAG, &ptr)) {     fprintf(stdout, "pattern=%s\n", ptr);  }  if (XmStringGetLtoR(dirmask, XmFONTLIST_DEFAULT_TAG, &ptr)) {     fprintf(stdout, "dirmask=%s\n", ptr);  }  if (XmStringGetLtoR(dirspec, XmFONTLIST_DEFAULT_TAG, &ptr)) {     fprintf(stdout, "dirspec=%s\n", ptr);  }}

⌨️ 快捷键说明

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