Описание функций Си

         

Ultoa



     ultoa

Функция Преобразует длинное целое без знака в строку.

Синтаксис #include

char *ultoa(unsigned long value, char *string, int radix);

Файл, содержащий stdlib.h прототип

Описание utoa преобразует value в строку, заканчиваю- щуюсю нулевым символом и помещает результат в string. value имеет тип unsigned long.

radix определяет основание, которое будет исполь- зовано в конвертируемом значении; оно должно быть заключено между 2 и 36.ultoa не обеспечивает про- верку переполнения и если значение отрицательно и radix равно 10, это не устанавливает отрицатель- ный знак.

Замечание. Память, занимаемая строкой должна быть достаточно большой, чтобы вместить возвращаемую строку, включая символ терминального нуля(\0). utoa может возвращать до 33 байт.

Возвращаемое ultoa возвращает string. значение

Смотрите также

Пример:

#include

#include

int main(void) { unsigned long lnumber = 3123456789L; char string[25]; ultoa(lnumber,string,10); printf("строка = %s, unsigned long = %lu\n",string,lnumber); return 0; }



Ungetc



     ungetc

Функция Помещает символы обратно во входной поток.

Синтаксис #include



int ungetc(char c, FILE *stream);

Файл, содержащий stdio.h прототип

Описание ungetc продвигает символ c обратно в указанный входной поток stream, который должен быть открыт для чтения. Этот символ может быть получен снова с помощью последующего вызова функций getc или fread для данного потока stream. Один символ мож- но поместить обратно в любой ситуации. Второй вы- зов функции ungetc без предварительного вызова функции getc приведет к тому, что предыдущий сим- вол будет потерян. Функции fflush,fseek, fsetpos и rewind очищает все помещенные обратно в поток символы.

Возвращаемое При успешном выполнении, ungetc возвращает символ значение помещенный обратно в поток. Иначе он возвращает EOF.

Переносимость ungetc поддерживается в системах UNIX и сов- местима с ANSI C.

Смотрите также

Пример:

#include

#include

int main(void) { int i; char ch; puts("введите целое, а затем символ\n"); /* считывать пока не встретится не цифра или EOF */ while((ch=getch())!=EOF && isdigit(ch)) i = 10 * i + ch - 48; /* преобразование в целое */ /* если был считан симол, не являющийся цифрой, поместить ее обратно */ if(ch != EOF) ungetc(ch,stdin); printf("i = %d, следующий символ в буфере: %c\n",getch()); return 0; }



Ungetch



     ungetch

Функция Помещает символы назад в буфер клавиатуры.

Синтаксис #include

int ungetch(int ch);

Файл, содержащий conio.h прототип

Описание ungetch помещает символ ch назад на консоль, приводя к тому, что ch будет следующим вводимым символом. ungetch не работает, если она вызывает- ся больше одного раза перед следующим чтением.

Возвращаемое ungetch возвращает ch в случае успешного выпол- значение нения. Возвращаемое значение EOF указывает на ошибку.

Смотрите также

Пример:

#include

#include

int main(void) { int i=0; char ch; puts("введите целое, а затем символ\n"); /* считывать пока не встретится не цифра или EOF */ while((ch=getch())!=EOF && isdigit(ch)) i = 10 * i + ch - 48; /* преобразование в целое */ /* если был считан симол, не являющийся цифрой, поместить ее обратно */ if(ch != EOF) ungetch(ch); printf("i = %d, следующий символ в буфере: %c\n",getch()); return 0; }



Unixtodo



     unixtodos

Функция Преобразует дату и время из формата UNIX в формат DOS.

Синтаксис #include

void unixtodos(long time, struct date *d, struct time *t);

Файл, содержащий dos.h прототип

Описание unixtodos преобразует время time из UNIX-формата в DOS-формат, и заполняет структуры date и time, на которые указывают d и t.

Возвращаемое Нет. значение

Переносимость unixtodos уникальна для DOS.

Смотрите также

Пример:

#include

#include

char *month[] = {"---","Jan","Feb","Mar","Apr","May","Jun", "Jul","Aug","Sep","Oct","Nov",Dec"};

#define SECONDS_PER_DAY 86400L /* секунд в сутках */

struct date d; struct time t;

int main(void) { unsigned long val; /* получить текущую дату и время */ getdate(&d); gettime(&t); printf("Сегодня %d %s %d\n",dt.da_day,month[dt.da_mon],dt.da_year); /* преобразовать дату и время в формат UNIX (число секунд с 1970 г. */ val = dostounix(&d,&t); /* вычесть 42 дня */ val -= (SECONDS_PER_DAY * 42); /* преобразовать обратнов формат DOS */ unixtodos(val,&d,&t); printf("42 дня назад было %d %s %d\n", dt.da_day,month[dt.da_mon],dt.da_year); return 0; }



Unlink



     unlink

Функция Удаляет файл.

Синтаксис #include

int unlink(const char *filename);

Файл, содержащий dos.h, io.h, stdio.h прототип

Описание Функция unlink удаляет файл с именем filename. В имени filename могут присутствовать специфика- ция дисковода, маршрут, собственно имя файла. Знаки шаблона (*,?) не разрешены.

С помощью вызова данной функции не могут быть удалены файлы с режимом доступа только чтение. Чтобы удалить такие файлы сначала следует вызвать функцию chmod (или _chmod) для изменения атрибута доступа.

Примечание. Если файл был открыт, то перед удале- нием не забудьте его закрыть.

Возвращаемое При успешном завершении возвращается значение 0. значение В случае ошибки возвращается -1, и глобальная пе- ременная errno получает одно из следующих значе- ний:

ENOENT - Маршрут или имя файла не найдены; EACCES - Отказ доступа.

Переносимость Функция поддерживается в системах UNIX.

Смотрите также

Пример:

#include

#include

int main(void) { FILE *fp = fopen("Junk.jnk","w"); int status; fprintf(fp,"Junk"); status = access("junk.jnk",0); if(status == 0) printf("Файл существует.\n); else printf("Файл не существует.\n); fclose(fp); unlink("junk.jnk"); status = access("junk.jnk",0); if(status == 0) printf("Файл существует.\n); else printf("Файл не существует.\n); return 0; }



Unlock



     unlock

Функция Разблокирует доступ к части файла.

Синтаксис #include

int unlock(int handle, long offset, long length);

Файл, содержащий dos.h прототип

Описание unlock обеспечивает интерфейс к механизму разде- ления файлов в DOS 3.x.

unlock уничтожает все блокировки ранее сделанные вызовом функции lock. Для того чтобы избежать ошибки, все блокировки должны быть сняты перед тем как файл закроется. Программа должна освобо- дить все блокировки до завершения.

Возвращаемое unlock возвращает 0 в случае успеха и -1 в случае значение ошибки.

Переносимость unlock уникальна для DOS 3.x. Более старые версии не поддерживают этот вызов.

Пример:

#include

#include

#include

#include

#include

#include

int main(void) { int handle,status; long length; handle = sopen("c:\\autoexec.bat", O_RDONLY, SH_DENYNO, S_IREAD); if(!handle) { printf("Ошибка при операции sopen"); exit(1); } length = filelength(handle); status = lock(handle,0L,length/2); if(status == 0) printf("Успешная операция блокировки"); else printf("Ошибка при операции блокировки"); status = unlock(handle,0L,length/2); if(status == 0) printf("Успешная операция разблокировки"); else printf("Ошибка при операции разблокировки"); close(handle); return 0; }