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

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

?? action.c~

?? 實現了一個簡單的web服務器
?? C~
字號:
#include "server.h"/* 開燈 */int turn_on(int led_num) {	int res;	char *history_str;	time_t timeval;	LOG_REC log_record;	HIST_REC hist_record;	FILE *log_fp;	FILE *hist_fp;	void *shared_memory_log=(void *)0;	int shmid_log;	int *log_writing;	void *shared_memory_hist=(void *)0;	int shmid_hist;	int *hist_writing;	/* shared memory for log */	shmid_log=shmget((key_t)1234,sizeof(int),0666 | IPC_CREAT);	if(shmid_log==-1) {		perror("shmget failed\n");		exit(EXIT_FAILURE);	}	shared_memory_log=shmat(shmid_log,(void *)0,0);	if(shared_memory_log==(void *)-1) {		perror("shmat failed\n");		exit(EXIT_FAILURE);	}	log_writing=(int *)shared_memory_log;	/* shared memory for hist */	shmid_hist=shmget((key_t)1235,sizeof(int),0666 | IPC_CREAT);	if(shmid_hist==-1) {		perror("shmget failed\n");		exit(EXIT_FAILURE);	}	shared_memory_hist=shmat(shmid_hist,(void *)0,0);	if(shared_memory_hist==(void *)-1) {		perror("shmat failed\n");		exit(EXIT_FAILURE);	}	hist_writing=(int *)shared_memory_hist;	/* check the status of led */	res=led_status(led_num);	/* system time */	(void)time(&timeval);	if(res==LED_TRUE) { //當前燈已亮		/* log struct */		memset(&log_record,'\0',sizeof(LOG_REC));		log_record.led_no=led_num;		sprintf(log_record.led_log,"led_%d has already been turned on, date is %s\n",led_num,ctime(&timeval));		printf("led_no1 %d\n",log_record.led_no);		printf("led_log1 %s\n",log_record.led_log);				/* hist struct*/		memset(&hist_record,'\0',sizeof(HIST_REC));		sprintf(hist_record.op_content,"User trys to turn on led_%d which has already been turned on, date is %s\n",led_num,ctime(&timeval));	}	else if(res==LED_FALSE) {		/*turn on the led light */		res=led_on(led_num);		if(res==-1) {			perror("turn on failed\n");			exit(EXIT_FAILURE);		}		/* log struct */		memset(&log_record,'\0',sizeof(LOG_REC));		log_record.led_no=led_num;		sprintf(log_record.led_log,"led_%d has been turned on, date is %s\n",led_num,ctime(&timeval));		printf("led_no1 %d\n",log_record.led_no);		printf("led_log1 %s\n",log_record.led_log);				/* hist struct*/		memset(&hist_record,'\0',sizeof(HIST_REC));		sprintf(hist_record.op_content,"User turns on led_%d, date is %s\n",led_num,ctime(&timeval));	}	/* 寫入日志文件 */	while(*log_writing==1) { //說明當前有進程正對文件進行讀寫		sleep(1);	}	/* critical area begin */	*log_writing=1;//表明當前進程要對文件進行讀寫	log_fp=fopen("led.log","a+");	if(log_fp==NULL) {		perror("open log file failed\n");		exit(EXIT_FAILURE);	}	fwrite(&log_record,sizeof(LOG_REC),1,log_fp);	fclose(log_fp);	*log_writing=0;//表明當前進程對文件讀寫完畢	/* critival area end */	if(shmdt(shared_memory_log)==-1) {		fprintf(stderr,"shmdt falied\n");		exit(EXIT_FAILURE);	}	/* 寫入歷史文件 */	while(*hist_writing==1) { //說明當前有進程正對文件進行讀寫		sleep(1);	}	/* critical area begin */	*hist_writing=1;//表明當前進程要對文件進行讀寫	hist_fp=fopen("operation.hist","a+");	if(hist_fp==NULL) {		perror("open log file failed\n");		exit(EXIT_FAILURE);	}	fwrite(&hist_record,sizeof(HIST_REC),1,hist_fp);	fclose(hist_fp);	*hist_writing=0;//表明當前進程對文件讀寫完畢	/* critival area end */	if(shmdt(shared_memory_hist)==-1) {		fprintf(stderr,"shmdt falied\n");		exit(EXIT_FAILURE);	}	return 1;}int turn_off(int led_num) {	int res;	char *history_str;	time_t timeval;	LOG_REC log_record;	HIST_REC hist_record;	FILE *log_fp;	FILE *hist_fp;	void *shared_memory_log=(void *)0;	int shmid_log;	int *log_writing;	void *shared_memory_hist=(void *)0;	int shmid_hist;	int *hist_writing;	/* shared memory for log */	shmid_log=shmget((key_t)1234,sizeof(int),0666 | IPC_CREAT);	if(shmid_log==-1) {		perror("shmget failed\n");		exit(EXIT_FAILURE);	}	shared_memory_log=shmat(shmid_log,(void *)0,0);	if(shared_memory_log==(void *)-1) {		perror("shmat failed\n");		exit(EXIT_FAILURE);	}	log_writing=(int *)shared_memory_log;	/* shared memory for hist */	shmid_hist=shmget((key_t)1235,sizeof(int),0666 | IPC_CREAT);	if(shmid_hist==-1) {		perror("shmget failed\n");		exit(EXIT_FAILURE);	}	shared_memory_hist=shmat(shmid_hist,(void *)0,0);	if(shared_memory_hist==(void *)-1) {		perror("shmat failed\n");		exit(EXIT_FAILURE);	}	hist_writing=(int *)shared_memory_hist;	/* check the status of led */	res=led_status(led_num);	/* system time */	(void)time(&timeval);	if(res==LED_FALSE) { //當前燈已滅		/* log struct */		memset(&log_record,'\0',sizeof(LOG_REC));		log_record.led_no=led_num;		sprintf(log_record.led_log,"led_%d has already been turned off, date is %s\n",led_num,ctime(&timeval));				/* hist struct*/		memset(&hist_record,'\0',sizeof(HIST_REC));		sprintf(hist_record.op_content,"User trys to turn off led_%d which has already been turned off, date is %s\n",led_num,ctime(&timeval));	}	else if(res==LED_TRUE) {		/*turn on the led light */		res=led_off(led_num);		if(res==-1) {			perror("turn off failed\n");			exit(EXIT_FAILURE);		}		/* log struct */		memset(&log_record,'\0',sizeof(LOG_REC));		log_record.led_no=led_num;		sprintf(log_record.led_log,"led_%d has been turned off, date is %s\n",led_num,ctime(&timeval)); 				/* hist struct*/		memset(&hist_record,'\0',sizeof(HIST_REC));		sprintf(hist_record.op_content,"User turns off led_%d, date is %s\n",led_num,ctime(&timeval));	}	/* 寫入日志文件 */	while(*log_writing==1) { //說明當前有進程正對文件進行讀寫		sleep(1);	}	/* critical area begin */	*log_writing=1;//表明當前進程要對文件進行讀寫	log_fp=fopen("led.log","a+");	if(log_fp==NULL) {		perror("open log file failed\n");		exit(EXIT_FAILURE);	}	fwrite(&log_record,sizeof(LOG_REC),1,log_fp);	fclose(log_fp);	*log_writing=0;//表明當前進程對文件讀寫完畢	/* critival area end */	if(shmdt(shared_memory_log)==-1) {		fprintf(stderr,"shmdt falied\n");		exit(EXIT_FAILURE);	}	/* 寫入歷史文件 */	while(*hist_writing==1) { //說明當前有進程正對文件進行讀寫		sleep(1);	}	/* critical area begin */	*hist_writing=1;//表明當前進程要對文件進行讀寫	hist_fp=fopen("operation.hist","a+");	if(hist_fp==NULL) {		perror("open log file failed\n");		exit(EXIT_FAILURE);	}	fwrite(&hist_record,sizeof(HIST_REC),1,hist_fp);	fclose(hist_fp);	*hist_writing=0;//表明當前進程對文件讀寫完畢	/* critival area end */	if(shmdt(shared_memory_hist)==-1) {		fprintf(stderr,"shmdt falied\n");		exit(EXIT_FAILURE);	}	return 1;}int get_status(int *status_res) {	int i=0;	int res;	for(i=0;i<LED_NUM;i++) {		res=led_status(i+1);		if(res==LED_TRUE) {			status_res[i]=1;		}		else {			status_res[i]=0;		}	}	return 1;}int get_history(char *text_content) {	int i=0;	FILE *hist_fp;	HIST_REC hist_record;	void *shared_memory_hist=(void *)0;	int shmid_hist;	int *hist_writing;	/* shared memory for hist */	shmid_hist=shmget((key_t)1235,sizeof(int),0666 | IPC_CREAT);	if(shmid_hist==-1) {		perror("shmget failed\n");		exit(EXIT_FAILURE);	}	shared_memory_hist=shmat(shmid_hist,(void *)0,0);	if(shared_memory_hist==(void *)-1) {		perror("shmat failed\n");		exit(EXIT_FAILURE);	}	hist_writing=(int *)shared_memory_hist;	/* 讀取歷史文件 */	while(*hist_writing==1) { //說明當前有進程正對文件進行讀寫		sleep(1);	}	/* critical area begin */	*hist_writing=1;//表明當前進程要對文件進行讀寫	hist_fp=fopen("operation.hist","r");	if(hist_fp==NULL) {		perror("open log file failed\n");		exit(EXIT_FAILURE);	}	memset(text_content,'\0',TEXT_SIZE);	while(feof(hist_fp)!=1) {		fseek(hist_fp,i*sizeof(HIST_REC),SEEK_SET);		fread(&hist_record,sizeof(HIST_REC),1,hist_fp);	 		strcat(text_content,hist_record.op_content); 		i++;		fseek(hist_fp,i*sizeof(HIST_REC),SEEK_SET);		fread(&hist_record,sizeof(HIST_REC),1,hist_fp);	}	fclose(hist_fp);	*hist_writing=0;//表明當前進程對文件讀寫完畢	/* critival area end */	if(shmdt(shared_memory_hist)==-1) {		fprintf(stderr,"shmdt falied\n");		exit(EXIT_FAILURE);	}	return 1;}int get_log(char *text_content) {	int i=0;	FILE *log_fp;	LOG_REC log_record;	void *shared_memory_log=(void *)0;	int shmid_log;	int *log_writing;	/* shared memory for hist */	shmid_log=shmget((key_t)1234,sizeof(int),0666 | IPC_CREAT);	if(shmid_log==-1) {		perror("shmget failed\n");		exit(EXIT_FAILURE);	}	shared_memory_log=shmat(shmid_log,(void *)0,0);	if(shared_memory_log==(void *)-1) {		perror("shmat failed\n");		exit(EXIT_FAILURE);	}	log_writing=(int *)shared_memory_log;	/* 讀取歷史文件 */	while(*log_writing==1) { //說明當前有進程正對文件進行讀寫		sleep(1);	}	/* critical area begin */	*log_writing=1;//表明當前進程要對文件進行讀寫	log_fp=fopen("led.log","r");	if(log_fp==NULL) {		perror("open log file failed\n");		exit(EXIT_FAILURE);	}	memset(text_content,'\0',TEXT_SIZE);	while(feof(log_fp)!=1) {		fseek(log_fp,i*sizeof(LOG_REC),SEEK_SET);		fread(&log_record,sizeof(LOG_REC),1,log_fp);	 		strcat(text_content,log_record.led_log); 		i++;		fseek(log_fp,i*sizeof(LOG_REC),SEEK_SET);		fread(&log_record,sizeof(LOG_REC),1,log_fp);	}	fclose(log_fp);	*log_writing=0;//表明當前進程對文件讀寫完畢	/* critival area end */	if(shmdt(shared_memory_log)==-1) {		fprintf(stderr,"shmdt falied\n");		exit(EXIT_FAILURE);	}	return 1;}int command(char *params) {	char num=0;	while(*params!='\0') {		switch(*params) {		case '1': 			num=1;			break;		case '2': 			num=2;			break;		case '3': 			num=3;			break;		case '4': 			num=4;			break;		case '5': 			num=5;			break;		case '6': 			num=6;			break;		case '7': 			num=7;			break;		case '8': 			num=8;			break;		}		turn_on(num);		params++;	}	return 1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一级做a爱片久久| 亚洲精品在线观| 99久久99久久精品国产片果冻| 麻豆一区二区99久久久久| 视频一区视频二区中文| 视频一区二区三区中文字幕| 亚洲国产成人av| 天天综合网 天天综合色| 三级精品在线观看| 麻豆成人免费电影| 国产尤物一区二区在线| 国产成人免费av在线| 成人一级黄色片| 91美女蜜桃在线| 欧美亚洲高清一区| 777午夜精品免费视频| 日韩欧美激情一区| 欧美激情一区二区三区不卡| 国产精品女主播在线观看| 亚洲嫩草精品久久| 日本伊人色综合网| 国产精品系列在线播放| 99视频超级精品| 欧美日本一区二区| 国产色产综合产在线视频| 国产精品成人一区二区三区夜夜夜| 亚洲天堂福利av| 婷婷开心久久网| 国产精品18久久久久久久久| 97超碰欧美中文字幕| 欧洲亚洲国产日韩| 欧美精品一区二区三| 亚洲日本乱码在线观看| 蜜桃精品视频在线观看| jlzzjlzz亚洲女人18| 欧美日本在线播放| 国产精品对白交换视频| 日韩和的一区二区| 99在线精品一区二区三区| 91精品国产综合久久久久久久久久| 久久久久久久综合色一本| 一二三区精品福利视频| 国内精品自线一区二区三区视频| 色偷偷一区二区三区| 精品国产免费视频| 亚洲va国产va欧美va观看| 国产高清一区日本| 欧美一区二区三区的| 亚洲图片激情小说| 国产成人免费9x9x人网站视频| 欧美亚洲一区二区在线| 精品国产乱码久久久久久夜甘婷婷| 亚洲日本va午夜在线影院| 裸体在线国模精品偷拍| 欧洲一区在线观看| 国产精品色呦呦| 精品一区二区久久久| 欧美日韩一区二区三区高清| 中文字幕精品在线不卡| 麻豆免费看一区二区三区| 日本精品一区二区三区高清 | 成人精品一区二区三区四区| 色网站国产精品| 国产精品久久精品日日| 九九热在线视频观看这里只有精品| 欧美综合欧美视频| 亚洲免费三区一区二区| 成人黄色软件下载| 国产欧美一区二区三区沐欲 | 久久先锋影音av| 爽好久久久欧美精品| 欧美午夜理伦三级在线观看| 国产精品人妖ts系列视频| 国产乱码精品一区二区三区av | www.日本不卡| 亚洲国产精品精华液2区45| 韩日av一区二区| 久久午夜羞羞影院免费观看| 麻豆免费精品视频| 精品999在线播放| 韩国av一区二区三区| 精品久久久久av影院| 精品一区二区三区免费播放| 欧美一卡二卡三卡| 麻豆成人综合网| 久久日韩粉嫩一区二区三区 | www.亚洲人| 亚洲丝袜美腿综合| 欧美综合一区二区三区| 一卡二卡三卡日韩欧美| 欧美日韩不卡一区| 久久99国产精品麻豆| 久久久久久久久99精品| 成人激情综合网站| 亚洲一区二区三区在线播放| 欧美三级韩国三级日本三斤| 日韩中文欧美在线| 久久久精品tv| 一本在线高清不卡dvd| 亚洲影院在线观看| 欧美电视剧免费观看| 国产精品亚洲专一区二区三区 | 国产三级精品视频| 99久久夜色精品国产网站| 一区二区三区91| 日韩女优毛片在线| 成人av网站免费观看| 亚洲第一综合色| 欧美va亚洲va国产综合| zzijzzij亚洲日本少妇熟睡| 亚洲小说欧美激情另类| 精品处破学生在线二十三| 99视频国产精品| 轻轻草成人在线| 国产精品电影院| 日韩一区二区三区电影在线观看 | 日韩伦理av电影| 日韩一区二区精品在线观看| 大桥未久av一区二区三区中文| 亚洲一区二区视频在线| 久久久三级国产网站| 欧美在线观看视频一区二区| 国产一区二区三区蝌蚪| 亚洲综合免费观看高清完整版在线| 欧美zozozo| 欧美日韩美少妇| 成人免费黄色在线| 美国十次了思思久久精品导航| 一区二区视频免费在线观看| 欧美成人a∨高清免费观看| 色老头久久综合| 国产91丝袜在线播放九色| 图片区小说区国产精品视频| 中文字幕亚洲视频| 国产香蕉久久精品综合网| 欧美日韩欧美一区二区| 成人禁用看黄a在线| 国产综合色产在线精品| 日产国产欧美视频一区精品| 亚洲精品免费播放| 亚洲欧洲精品一区二区三区| 精品国产三级电影在线观看| 欧美精品精品一区| 在线一区二区观看| 91丨porny丨在线| 成人午夜av影视| 国产91露脸合集magnet | 国产日韩欧美精品综合| 91精品国产乱| 7777精品久久久大香线蕉| 在线观看视频欧美| 色呦呦国产精品| 色狠狠av一区二区三区| 色综合天天狠狠| 色婷婷综合激情| 色综合久久久久久久久久久| 91在线观看免费视频| 91网上在线视频| 91在线视频在线| 欧美色图天堂网| 欧美日韩视频在线一区二区| 欧美三级在线视频| 欧美日产国产精品| 日韩欧美国产成人一区二区| 日韩一区二区在线免费观看| 91精品久久久久久久91蜜桃 | 成人性视频免费网站| 国产成人精品免费看| 91视视频在线直接观看在线看网页在线看| 成人久久18免费网站麻豆 | 精品综合久久久久久8888| 精品亚洲成a人| 国产suv精品一区二区三区| 成人免费毛片片v| 91精彩视频在线观看| 欧美日韩精品免费观看视频| 91精品婷婷国产综合久久| 久久久久久一级片| ...av二区三区久久精品| 亚洲夂夂婷婷色拍ww47| 美女视频黄 久久| 成人高清免费观看| 欧美色视频在线观看| 久久综合成人精品亚洲另类欧美 | www成人在线观看| 国产精品久久久久久久久免费桃花| 亚洲人亚洲人成电影网站色| 亚洲成人tv网| 懂色av一区二区夜夜嗨| 色婷婷久久久综合中文字幕| 欧美裸体bbwbbwbbw| 2024国产精品| 一区二区不卡在线播放| 黄页视频在线91| 在线观看日韩av先锋影音电影院| 欧美变态tickle挠乳网站| 亚洲视频在线一区二区| 久久精品国产一区二区三 | 日韩午夜电影av| 亚洲天堂久久久久久久|