Объявление переменной struct stat buf;
в программе объявляется переменная
struct stat buf;
error: storage size of ‘statbuf’ isn’t known
в программе объявляется переменная
struct stat buf;
error: storage size of ‘statbuf’ isn’t known
Не нашел функции установки системного времени :( Пользователь вводит данные в формате ЧЧ мм ДД ММ ГГ я это считваю все в 5 int после этого надо проверить может ли быть в этом месяце 31 число, ну и 29,30,31 для февраля.. А потом установить время в системе в соответствии с этими значениями
Возникла такая трудность при написании кода.. Делается все на железки с арм процом и подключенным туда 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;
}
Всем доброго времени При написании программы возникла необходимость получать местное время в формате Час Мин Дат Мес Год, и после этого записывать в файл я начинаю делать так :)
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(<);
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.. как это реализовать?