Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Функциональные клавиши.docx
Скачиваний:
8
Добавлен:
11.04.2015
Размер:
785.39 Кб
Скачать

Void name(char nn[33]);

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

Используемые библиотеки: данные функции находятся в файле drawlib.cpp поэтому библиотеки там уже были подключены заранее

Тип возвращаемого значения- void.

Схема алгоритма

Функция переименования:

void name(char nn[33])

{

WINDOW*w;

const char*namewin="Move/Rename";

w=newwin(WLINES,WCOLS,Wy+1,Wx+1);

wrefresh(w);

wattrset(w,COLOR_PAIR(10));

werase(w);

box(w,0,0);

wmove(w,0,(WCOLS-strlen(namewin))/2);

wattrset(w,COLOR_PAIR(12));

wprintw(w," %s ",namewin);

wattrset(w,COLOR_PAIR(10));

for(int i=1;i<=(WCOLS-2);i++)

for(int j=1;j<=(WCOLS-2);j++)

mvwaddstr(w,j,i," ");

mvwaddstr(w,WLINES/2-2,(WCOLS-16)/2,"Input new name");

wattrset(w,COLOR_PAIR(10));

mvwaddstr(w,WLINES/2+2,(WCOLS-2)/2,"OK");

wattrset(w,COLOR_PAIR(4));

for(int i=3;i<=(WCOLS-4);i++)

mvwaddstr(w,WLINES/2,i," ");

wmove(w,WLINES/2,3);

echo();

curs_set(1);

wgetstr(w,nn);

noecho();

curs_set(0);

delwin(w);

}

Функция полной информации об объекте:

Voidaccesscheck();

Функция краткой информации об объектах:

Voidaccessdev();

Эти две функции показывают информацию об объектах.

Используемые библиотеки: данные функции находятся в файле drawlib.cpp поэтому библиотеки там уже были подключены заранее

Тип возвращаемого значения- void.

Функция полной информации об объекте:

void accesscheck() // функция преобразования переменной mode_t в формат -rwxrwxrwx

{struct stat buf;//структура со сведениями о файле

mode_t newmode; //переменная для изменения прав доступа

if (!(buf.st_mode & S_IRUSR)) printw ("-");

else printw ("r");

if (!(buf.st_mode & S_IWUSR)) printw ("-");

else printw ("w");

if (!(buf.st_mode & S_IXUSR)) printw ("-");

else printw ("x");

if (!(buf.st_mode & S_IRGRP)) printw ("-");

else printw ("r");

if (!(buf.st_mode & S_IWGRP)) printw ("-");

else printw ("w");

if (!(buf.st_mode & S_IXGRP)) printw ("-");

else printw ("x");

if (!(buf.st_mode & S_IROTH)) printw ("-");

else printw ("r");

if (!(buf.st_mode & S_IWOTH)) printw ("-");

else printw ("w");

if (!(buf.st_mode & S_IXOTH)) printw ("-");

else printw ("x");

printw("Uid:%d ",buf.st_uid);

printw("Gid:%d ",buf.st_gid);

printw("Inode:%d ",buf.st_ino);

printw("Dev id:%d ",buf.st_dev);

}

Функция краткой информации об объектах:

void accessdev()

{struct stat buf;//структура со сведениями о файле

mode_t newmode; //переменная для изменения прав доступа

if (S_ISBLK(buf.st_mode)) printw ("block");

else if (S_ISLNK(buf.st_mode)) printw ("link");

else if (S_ISDIR(buf.st_mode)) printw ("dir");

else if (S_ISSOCK(buf.st_mode)) printw ("soket");

else if (S_ISFIFO(buf.st_mode)) printw ("FIFO");

else printw ("-");}

Функция выдачи окна с ошибкой:

Void printerror(const char* text);

Функция выводит окно с ошибкой.

Используемые библиотеки: данные функции находятся в файле drawlib.cpp поэтому библиотеки там уже были подключены заранее

Тип возвращаемого значения- void.

Функция выдачи окна с ошибкой:

Void printerror(const char* text)

{

WINDOW *w;

beep();

w = newwin( WLINES, WCOLS, Wy+1, Wx+1);

noecho();

curs_set(0);

wrefresh(w);

wattrset(w,A_BOLD|COLOR_PAIR(8));

werase(w);

box(w,0,0);

wmove(w,0,(WCOLS-8)/2);

wattrset(w,A_BOLD|COLOR_PAIR(9));

wprintw( w, " ERROR " );

wattrset(w,A_BOLD|COLOR_PAIR(7));

for (int i=1;i<=WCOLS-2;i++)

for (int j=1;j<=WLINES-2;j++)

{

mvwaddstr(w,j,i," ");

}

wrefresh(w);//отобразить stdscr

wattrset(w, A_BOLD|COLOR_PAIR(8));

mvwaddstr(w,WLINES/2-1,(WCOLS-strlen(text))/2, text);

wattrset(w,A_BOLD|A_UNDERLINE|COLOR_PAIR(9));

mvwaddstr(w,WLINES/2+1,(WCOLS-2)/2, "OK");

wrefresh(w);

keypad( w, TRUE );

while (1)

{

switch (wgetch(w))

{

case KEY_ESC:

case 10: goto out;

} }

out:

delwin(w);

refresh();

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]