LINUX.ORG.RU

Сообщения Mish_ka

 

Объявление переменной struct stat buf;

Форум — Development

в программе объявляется переменная

struct stat buf;
на что компилятор выдает ошибку
error: storage size of ‘statbuf’ isn’t known

Mish_ka
()

Установить системное время

Форум — Development

Не нашел функции установки системного времени :( Пользователь вводит данные в формате ЧЧ мм ДД ММ ГГ я это считваю все в 5 int после этого надо проверить может ли быть в этом месяце 31 число, ну и 29,30,31 для февраля.. А потом установить время в системе в соответствии с этими значениями

Mish_ka
()

Считывание нажатий клавиш и разница времени

Форум — Development

Возникла такая трудность при написании кода.. Делается все на железки с арм процом и подключенным туда LCD дисплеем и телефонной клавиатуры Собственно суть вопроса такова. Если пользователь нажал клавишу Z вывести 1 сообщение и если он нажал клавишу Z в течении 3-х секунд с первого нажатия записать в файл новые данные и вернутся в главное меню Если же из главного меню клавиша Z не нажимается в течении 5 секунд выйти еще выше :) в самое главное меню. Понять не могу как учитывать время, если клавишу не нажималась вообще или нажалась только 1 раз

nt run_compressor_options(){
	FILE *compr, *resourse;
	time_t start, finish;
	char symbol, str[1], *temp, msg[40];
	unsigned short int hour, minut, sec, key, j = 0;
	float i = 0;													
	
	if ((compr = fopen("eeprom","rb+"))==NULL)		//Открываем файл из EEPROM для чтения ресурса компрессора
		printf("Не удается открыть файл для чтения");

	if ((resourse = fopen("res_compr","wb+"))==NULL)	//Открываем файл для записи в него форматированного ресурса компрессора
		printf("Не удается открыть файл для записи");
		
	while(!feof(compr)){										//Считаваем из EEPROM строку формата ЧЧЧЧ:ММ:СС
		fgets(str,12,compr);
	}
	
	temp = strtok(str,":");										//Разбиваем ее на ЧЧЧЧ ММ СС
	hour = atoi(temp);
	temp = strtok(NULL,":");
	minut = atoi(temp);
	temp = strtok(NULL,":");
	sec = atoi(temp);

	sprintf(msg,"РЕСУРС КОМПРЕССОРА  ЧС:%04d;МН:%2d;СЕК:%2d;",hour,minut,sec); 	//Записываем в msg строку для вывода на экран
	fputs(msg,resourse);														//Записываем ее в файл 
	lcd_print("res_compr", NO_CURSOR);
	
	while(1){
		key = get_pkey();														//Обработчик действий пользователя
		switch(key){
			case KEY_Z:						//int i = 14
				if (j==0)
					time(&start);
					rewind(resourse);
					sprintf(msg,"Счетчик ресурса обнулисть: Подтвердите...");
					fputs(msg,resourse);
					lcd_print("res_compr", NO_CURSOR);
				if (j==1){
					time(&finish);
					j=0;
				}
				i = difftime(start,finish);
				printf("\n%f\n",i);
				if ((i >=-3)&&(i <= 0)){
					rewind(resourse);
					sprintf(msg,"РЕСУРС КОМПРЕССОРА  ЧС:%s;МН:%s;СЕК:%s;","0000","00","00");
					fputs(msg,resourse);
					lcd_print("res_compr", NO_CURSOR);
					fclose(resourse);
					fclose(compr);
					exit(0);
				}
				j++;
			break;
			default:
				lcd_print("res_compr", NO_CURSOR); 	
		}				// End of switch
	}					// End of while


	fclose(resourse);
	fclose(compr);
	
	return 0;
	}

int main(){
	run_compressor_options();
	return 0;
}

Mish_ka
()

struct tm и преобразование int в char*

Форум — Development

Всем доброго времени При написании программы возникла необходимость получать местное время в формате Час Мин Дат Мес Год, и после этого записывать в файл я начинаю делать так :)

int run_clock_options(){
	struct tm *ptr;
	char *msg, *temp;
	int file_n, position = 21, min;
	unsigned short int key;
	
	time_t lt = time(NULL);
	ptr = localtime(&lt);
	file_n = open("/home/user/time",O_WRONLY);
	if (file_n ==-1){
		printf("Не удаеться открыть файл");
	}
	itoa(ptr->tm_min,min,2);

	write(file_n, /*itoa*/, 2);
	close(file_n);

	return 0;
}

но что-то мой компилятор не хочет брать itoa.. как это реализовать?

Mish_ka
()

RSS подписка на новые темы