亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? htvmsutils.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
?? 第 1 頁 / 共 2 頁
字號:
	    }	}    }    second = strchr(filename+1, '/');		/* 2nd slash */    last = strrchr(filename, '/');	/* last slash */            if (!second) {				/* Only one slash */	sprintf(vmsname, "%s%s", nodename, filename + 1);    } else if(second==last) {		/* Exactly two slashes */	*second = 0;		/* Split filename from disk */	sprintf(vmsname, "%s%s:%s", nodename, filename+1, second+1);	*second = '/';	/* restore */    } else { 				/* More than two slashes */	char * p;	*second = 0;		/* Split disk from directories */	*last = 0;		/* Split dir from filename */	sprintf(vmsname, "%s%s:[%s]%s",		nodename, filename+1, second+1, last+1);	*second = *last = '/';	/* restore filename */	for (p=strchr(vmsname, '['); *p!=']'; p++)	    if (*p=='/') *p='.';	/* Convert dir sep.  to dots */    }    free(nodename);    free(filename);    return vmsname;}/* PUBLIC							HTVMS_putenv()**		Create logical name** ON ENTRY:**	string		name value pair separated by equal sign. **			"name=value"**	**** ON EXIT:**	0 		ok**	1		failed**	*/PUBLIC int HTVMS_putenv ARGS1(	CONST char *, string){    $DESCRIPTOR(job_table,"LNM$JOB");    char * name = (char*)malloc(strlen(string)+1);    char * value = (char*)malloc(strlen(string)+1);	/* Copies to hack */    char * equal;    long result = 1;    /* separate pair */    strcpy(name,string);    equal = strchr(name,'=');    if (equal)    {    ItemStruct ItemList[2];    struct dsc$descriptor_s log_name;       /* get value */       *equal = '\0';       strcpy(value,equal+1);       /* fill logical name */              log_name.dsc$w_length = strlen(name);       log_name.dsc$b_dtype = DSC$K_DTYPE_T;       log_name.dsc$b_class = DSC$K_CLASS_S;       log_name.dsc$a_pointer = name;       /* fill Item */       ItemList[0].BufferLength = strlen(value);       ItemList[0].BufferAddress = value;       ItemList[0].ReturnLengthAddress = 0;       ItemList[0].ItemCode = LNM$_STRING;       /* terminate list */       ItemList[1].ItemCode = 0;       ItemList[1].BufferLength = 0;       /* put into job logical name table */       result = SYS$CRELNM(0, &job_table, &log_name, 0, ItemList);       if ((result == SS$_NORMAL) || (result == SS$_SUPERSEDE))          result = 0;       else          result = 1;    }        free(name);    free(value);    return(result);}/* PUBLIC							HTVMS_start_timer()**		Starts a timer** ON ENTRY:**	n		A number to recognise the timer. 0 may be used to **			say that recognision is not needed**	fun		ptr to a function to be called asynchronously**	sec		number of seconds to wait before firing.**	**** ON EXIT:**	*/PUBLIC void HTVMS_start_timer ARGS3(	CONST int, n,	CONST char *, fun,	CONST int, sec){long Result;long DeltaTime[2];long Operation = LIB$K_DELTA_SECONDS;   Result = LIB$CVT_TO_INTERNAL_TIME(&Operation, &sec, DeltaTime);      Result = SYS$SETIMR(0, DeltaTime, fun, n, 0);}/* PUBLIC							HTVMS_cancel_timer()**		Cancel a specific or all timers** ON ENTRY:**	n		timer number (0 to cancel all timers)**	**** ON EXIT:**	*/PUBLIC void HTVMS_cancel_timer ARGS1(	CONST int, n){long Result;   Result = SYS$CANTIM(n, 0);}/* PUBLIC							HTVMS_getpwnam()**		getpwnam routine** ON ENTRY:**	username	Username specification**	**** ON EXIT:**	NULL		error**	*/PUBLIC struct passwd *HTVMS_getpwnam ARGS1(	CONST char *, username){long Result;struct dsc$descriptor_s UserNameDesc;ItemStruct ItemList[3];unsigned long DeviceLength;char Device[33];unsigned long DirLength;char Dir[64];char VMSName[100];static struct passwd pw;static char pw_dir[100];   /* make sure pointers are correct */   pw.pw_dir = pw_dir;   /* construct UserName */   UserNameDesc.dsc$w_length = strlen(username);   UserNameDesc.dsc$b_dtype = DSC$K_DTYPE_T;   UserNameDesc.dsc$b_class = DSC$K_CLASS_S;   UserNameDesc.dsc$a_pointer = username;   /* Default Device */   ItemList[0].BufferLength = 33;   ItemList[0].BufferAddress = Device;   ItemList[0].ReturnLengthAddress = &DeviceLength;   ItemList[0].ItemCode = UAI$_DEFDEV;   /* Default Directory */   ItemList[1].BufferLength = 64;   ItemList[1].BufferAddress = Dir;   ItemList[1].ReturnLengthAddress = &DirLength;   ItemList[1].ItemCode = UAI$_DEFDIR;   /* terminate list */   ItemList[2].ItemCode = 0;   ItemList[2].BufferLength = 0;   /* get info */   Result = SYS$GETUAI(0,0,&UserNameDesc,ItemList,0,0,0);   if (Result != SS$_NORMAL)      return(NULL);   /* create vms name */   strncpy(VMSName,&(Device[1]),Device[0]);   VMSName[Device[0]] = '\0';   strncat(VMSName,&(Dir[1]),Dir[0]);   VMSName[Device[0]+Dir[0]] = '\0';      /* convert it into www name */   strcpy(pw_dir,HTVMS_wwwName(VMSName));   return(&pw);}PUBLIC int HTStat ARGS2(	char *, filename, 	stat_t *, info){   /*       the following stuff does not work in VMS with a normal stat...      -->   /disk$user/duns/www if www is a directory		is statted like: 	/disk$user/duns/www.dir 		after a normal stat has failed      -->   /disk$user/duns	if duns is a toplevel directory		is statted like:	/disk$user/000000/duns.dir      -->   /disk$user since disk$user is a device		is statted like:	/disk$user/000000/000000.dir      -->   /					searches all devices, no solution yet...      -->   /vxcern!/disk$cr/wwwteam/login.com		is not statted but granted with fake information...   */int Result;int Len;char *Ptr, *Ptr2;char Name[256];   /* try normal stat... */   Result = stat(filename,info);   if (Result == 0)      return(Result);   /* make local copy */   strcpy(Name,filename);   /* if filename contains a node specification (! or ::), we will try to access      the file via DECNET, but we do not stat it..., just return success       with some fake information... */   if (HTVMS_checkDecnet(Name))   {      /* set up fake info, only the one we use... */      info->st_dev = NULL;      info->st_ino[0] = 0;      info->st_ino[1] = 0;      info->st_ino[2] = 0;      info->st_mode = S_IFREG | S_IREAD;	/* assume it is a regular Readable file */      info->st_nlink = NULL;      info->st_uid = 0;      info->st_gid = 0;      info->st_rdev = 0;      info->st_size = 0;      info->st_atime = time(NULL);      info->st_mtime = time(NULL);      info->st_ctime = time(NULL);      return(0);   }   /* failed,so do device search in case root is requested */   if (!strcmp(Name,"/"))   {  /* root requested */      return(-1);   }      /* failed so this might be a directory, add '.dir' */   Len = strlen(Name);   if (Name[Len-1] == '/')      Name[Len-1] = '\0';      /* fail in case of device */   Ptr = strchr(Name+1,'/');   if ((Ptr == NULL) && (Name[0] == '/'))   {  /* device only... */      strcat(Name,"/000000/000000");   }      if (Ptr != NULL)   {  /* correct filename in case of toplevel dir */      Ptr2 = strchr(Ptr+1,'/');      if ((Ptr2 == NULL) && (Name[0] == '/'))      {         char End[256];         strcpy(End,Ptr);         *(Ptr+1) = '\0';         strcat(Name,"000000");         strcat(Name,End);      }   }   /* try in case a file on toplevel directory or .DIR was alreadyt specified */   Result = stat(Name,info);   if (Result == 0)      return(Result);   /* add .DIR and try again */   strcat(Name,".dir");   Result = stat(Name,info);   return(Result);}PUBLIC int HTVMS_checkDecnet ARGS1(	char *, filename) {    /* for VMS we take of the first slash in case a nodename is specified        to make sure we access over decnet */    /* nodenames can only be specified if the first part in the filename       contains either '!', just before the second slash, or '::' */int slash = 1;    if (filename[0] == '/')       for (slash = 1; (filename[slash] != '\0') && (filename[slash] != '/'); slash++)          ;    /* second slash found */    if (filename[slash] == '/')    {  /* unix syntax */       if ( ((slash >= 1) && (filename[slash-1] == '!')) ||             ((slash >= 3) && (!strcmp(&filename[slash-3],"%21"))) )       {           char *p;           for (p = filename; *(p+1) != '\0'; p++)              *p = *(p+1);           *p = *(p+1);            return(1);       }    }    else    {  /* vms syntax */       if (strstr(filename,"::") ||           strstr(filename,"%3A%3A") )       {           char *p;           for (p = filename; *(p+1) != '\0'; p++)              *p = *(p+1);           *p = *(p+1);            return(1);       }    }    return(0);}/* PUBLIC							HTVMS_getUIC()**		getUIC routine** ON ENTRY:**	username	Username specification**	**** ON EXIT:**	0		error**	UIC		VMS User Identification Code for username**	*/PUBLIC unsigned int HTVMS_getUIC ARGS1(	CONST char *, username){long Result;struct dsc$descriptor_s UserNameDesc;ItemStruct ItemList[2];unsigned long UIC;unsigned long UICLength;   /* construct UserName */   UserNameDesc.dsc$w_length = strlen(username);   UserNameDesc.dsc$b_dtype = DSC$K_DTYPE_T;   UserNameDesc.dsc$b_class = DSC$K_CLASS_S;   UserNameDesc.dsc$a_pointer = username;   /* UIC */   ItemList[0].BufferLength = sizeof(UIC);   ItemList[0].BufferAddress = &UIC;   ItemList[0].ReturnLengthAddress = &UICLength;   ItemList[0].ItemCode = UAI$_UIC;   /* terminate list */   ItemList[1].ItemCode = 0;   ItemList[1].BufferLength = 0;   /* get info */   Result = SYS$GETUAI(0,0,&UserNameDesc,ItemList,0,0,0);   if (Result != SS$_NORMAL)      return(0);   else      return((unsigned int) UIC);}/* PUBLIC							HTVMS_isOwner()**		CHECKS OWNERSHIP OF FILE FOR CERTAIN USER** ON ENTRY:**	FileName	The file or directory to be checked**	UserName	Name of the user to check ownership for.**			User nobody, represented by "" is given NO for an answer**** ON EXIT:**	returns YES if FileName is owned by UserName**	*/PUBLIC BOOL HTVMS_isOwner ARGS2(	CONST char *, FileName,	CONST char *, UserName){struct stat buf;int Result;   /* user nobody should access as from account under which server is running */   if (0 == strcmp(UserName,""))   {      CTRACE(TDEST, "VMSisOwner.. No access allowed user nobody.\n");      return(NO);   }   /* load buf */   Result = HTStat(FileName, &buf);   if (Result) {      CTRACE(TDEST, "VMSisOwner.. HTStat() failed for '%s'\n", FileName);      return NO;  /* no file or directory, so UserName can't own it */   }   /* compare with UIC for UserName */   if (buf.st_uid != HTVMS_getUIC(UserName)) {      CTRACE(TDEST, "VMSisOwner.. '%s' does not own '%s'\n",      		     UserName, FileName);      return NO;   }   return YES;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu久久天堂性欧美| 奇米影视7777精品一区二区| 国内外成人在线| 亚洲精品一区在线观看| 国产一区二区福利| 国产欧美综合在线观看第十页| 国产精品18久久久久久久网站| 亚洲国产成人一区二区三区| av中文字幕不卡| 亚洲国产aⅴ天堂久久| 91精品国产福利| 成人一级黄色片| 亚洲综合在线五月| 欧美变态tickle挠乳网站| 国产成人精品综合在线观看| 亚洲日本va午夜在线影院| 欧美日韩一级大片网址| 国产美女精品在线| 一区二区三区在线播放| 欧美www视频| 成人黄色电影在线| 天堂成人免费av电影一区| 久久久精品综合| 欧美日韩1234| 成人综合婷婷国产精品久久蜜臀| 有坂深雪av一区二区精品| 日韩欧美在线网站| 91视频国产观看| 国产自产高清不卡| 亚洲一二三级电影| 国产欧美视频一区二区三区| 欧美日韩一区二区三区在线| 国产九色sp调教91| 亚洲成人av福利| 国产精品萝li| 欧美大片顶级少妇| 欧美性猛交xxxxxxxx| 国产精一区二区三区| 日韩电影在线免费| 亚洲猫色日本管| 日本一区二区视频在线| 制服丝袜亚洲网站| 色噜噜狠狠一区二区三区果冻| 久久成人av少妇免费| 亚洲国产精品麻豆| 1区2区3区欧美| 久久精品欧美日韩| 日韩欧美电影一区| 3751色影院一区二区三区| 色婷婷av一区| 成人成人成人在线视频| 精品亚洲国内自在自线福利| 午夜欧美视频在线观看| 亚洲精品欧美综合四区| 中文久久乱码一区二区| 久久综合久久综合久久综合| 欧美美女bb生活片| 在线观看日韩一区| 99久久精品免费看| 国产成人精品亚洲日本在线桃色| 蜜桃一区二区三区在线观看| 亚洲国产精品一区二区www| 亚洲欧美国产毛片在线| 国产精品久久久久久亚洲毛片| 欧美成人综合网站| 日韩欧美国产一区在线观看| 欧美日韩一区精品| 欧美日韩一区二区三区在线看 | 日韩视频一区二区三区在线播放| 一本色道a无线码一区v| 99久久精品免费| 91亚洲大成网污www| 99re成人精品视频| 91麻豆swag| 色婷婷久久久亚洲一区二区三区| jlzzjlzz国产精品久久| 97超碰欧美中文字幕| 91香蕉视频mp4| 在线观看三级视频欧美| 欧美日韩亚洲综合一区二区三区| 欧美日韩久久一区二区| 欧美精品xxxxbbbb| 日韩一区二区三区免费看| 欧美一区二区三区人| 日韩一区二区三区视频在线| 精品少妇一区二区三区日产乱码 | 9i在线看片成人免费| 成人a区在线观看| 成人国产亚洲欧美成人综合网| 成人午夜免费电影| 色综合天天综合网天天看片 | 欧美高清精品3d| 欧美一区午夜视频在线观看| 日韩精品一区二区三区中文不卡| 久久久久久日产精品| 国产精品视频一二三区| 亚洲精品日韩综合观看成人91| 亚洲国产精品久久久久秋霞影院| 日本va欧美va精品| 国产精品一区二区三区99| 99综合电影在线视频| 欧美网站大全在线观看| 日韩欧美在线影院| 国产精品理伦片| 日日夜夜精品免费视频| 韩国午夜理伦三级不卡影院| 99视频在线观看一区三区| 欧美日韩久久久久久| 精品国产免费人成电影在线观看四季| 国产欧美一区二区精品忘忧草| 亚洲主播在线观看| 国产美女精品在线| 欧美在线高清视频| 久久蜜臀精品av| 亚洲已满18点击进入久久| 久久99国产精品尤物| 94色蜜桃网一区二区三区| 欧美一区二区免费| 综合久久一区二区三区| 日本中文字幕一区二区视频 | 久久超级碰视频| 色综合久久66| 久久在线观看免费| 五月婷婷综合激情| 99国产精品99久久久久久| 日韩女优视频免费观看| 亚洲欧美日韩在线播放| 韩国v欧美v日本v亚洲v| 欧美日韩视频不卡| 国产精品成人一区二区艾草| 免费一级片91| 欧美自拍丝袜亚洲| 国产精品欧美综合在线| 久久国产福利国产秒拍| 欧美亚洲动漫制服丝袜| 国产精品女人毛片| 韩国理伦片一区二区三区在线播放| 欧美亚洲一区二区在线| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品乱码一区二区三区软件 | 激情综合五月婷婷| 欧美在线不卡一区| 国产精品白丝在线| 国产精品一区三区| 日韩欧美一级精品久久| 亚洲成人午夜影院| 色婷婷久久久亚洲一区二区三区| 国产欧美日韩精品一区| 国产伦精品一区二区三区免费迷| 91精品国产91热久久久做人人| 亚洲制服欧美中文字幕中文字幕| 高清beeg欧美| 国产日产精品一区| 国产黄色精品视频| 久久欧美一区二区| 激情综合亚洲精品| 2020国产精品| 国产精品自拍在线| 久久久久久久网| 国产成人免费视频| 国产女主播视频一区二区| 国产麻豆精品久久一二三| 久久嫩草精品久久久精品一| 九九精品一区二区| 精品免费99久久| 国产综合久久久久久鬼色 | 成人免费在线观看入口| 成人黄色网址在线观看| 亚洲欧洲日产国码二区| 99综合影院在线| 一区二区三区四区激情| 欧洲国产伦久久久久久久| 一级做a爱片久久| 欧美日韩性生活| 久久精品国产亚洲一区二区三区| 日韩欧美中文字幕公布| 国产激情精品久久久第一区二区 | 一区二区三区丝袜| 欧美日韩一级二级三级| 日韩成人一区二区三区在线观看| 欧美精品丝袜久久久中文字幕| 亚洲成人激情综合网| 日韩一区二区三| 国产91对白在线观看九色| 亚洲欧美一区二区视频| 在线亚洲一区观看| 日韩电影在线观看网站| 久久综合给合久久狠狠狠97色69| 风间由美一区二区三区在线观看| 国产精品国产三级国产普通话蜜臀 | 男女性色大片免费观看一区二区| 日韩欧美成人午夜| 成人午夜电影网站| 亚洲综合清纯丝袜自拍| 日韩一区二区三区四区五区六区 | 成人午夜视频在线| 亚洲一级二级在线| 久久综合色8888| 在线免费一区三区| 久久99国产精品免费|