Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО STUDENT_v2_Мовчан.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
95.66 Кб
Скачать
  1. Какой будет результат после выполнения программы prog. Приведен ниже:

Используемые функции:

Int stat( const char *filename, struct stat *buf); - следует по символьным ссылкам

Поле: st_mode /* тип и защита, закодированы в одном поле*/

Используемые макросы:

S_IFMT 0170000 маска для всех битовых полей типа файла

S_IFDIR 0040000 каталог

Листинг:

#include <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

#include <stdio.h>

int main(int argc, char **argv)

{ struct stat s; stat(argv[1], &s);

int q; static char str[22];

q=s.st_mode & S_IFMT;

switch (q)

{case S_IFDIR: sprintf(str,"Каталог"); break;

default: sprintf(str,"???"); break;}

fprintf(stdout," Тип: %s\n",str);}

student@loony ~/new $ ls -lF

-rwx------ 3 student student 187 2012-12-23 17:20 1.c*

drwxrwxr-x 2 student student 4096 2012-12-23 16:48 p1/

-rwxrwxr-x 1 student student 8623 2012-12-23 20:29 prog*

lrwxrwxrwx 1 student student 2 2012-12-23 17:22 s1 -> p1/

lrwxrwxrwx 1 student student 3 2012-12-23 17:24 s3 -> 1.c*

student@loony ~/new $ ./prog p1

________________________________

student@loony ~/new $ ./prog 1.с

________________________________

  1. Какой будет результат после выполнения программы prog. Приведен ниже:

Используемые функции:

Int stat( const char *filename, struct stat *buf); - следует по символьным ссылкам

Поле: st_nlink /* число прямых ссылок */

st_size /* общий размер в байтах */

Листинг:

#include <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

#include <stdio.h>

int main(int argc, char **argv)

{struct stat s; stat(argv[1], &s);

fprintf(stdout,"%d Ссылки на файл\n", s.st_nlink);

fprintf(stdout,"Размер %d байт\n", s.st_size);}

student@loony ~/new $ ls -lF

-rwx------ 3 student student 187 2012-12-23 17:20 1.c*

drwxrwxr-x 2 student student 4096 2012-12-23 16:48 p1/

-rwxrwxr-x 1 student student 8623 2012-12-23 20:29 prog*

lrwxrwxrwx 1 student student 2 2012-12-23 17:22 s1 -> p1/

lrwxrwxrwx 1 student student 3 2012-12-23 17:24 s3 -> 1.c*

student@loony ~/new $ ./prog s1

________________________________

________________________________

  1. Какой будет результат после выполнения программы prog. Приведен ниже:

Используемые функции:

int lstat( const char *filename, struct stat *buf); -не следует по символьным ссылкам

Поле: st_nlink /* число прямых ссылок */

st_size /* общий размер в байтах */

Листинг:

#include <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

#include <stdio.h>

int main(int argc, char **argv)

{ struct stat lst; lstat(argv[1], &lst);

fprintf(stdout,"%d Ссылки на файл\n", lst.st_nlink);

fprintf(stdout,"Размер %d байт\n", lst.st_size);}

student@loony ~/new $ ls -lF

-rwx------ 3 student student 187 2012-12-23 17:20 1.c*

drwxrwxr-x 2 student student 4096 2012-12-23 16:48 p1/

-rwxrwxr-x 1 student student 8623 2012-12-23 20:29 prog*

lrwxrwxrwx 1 student student 2 2012-12-23 17:22 s1 -> p1/

lrwxrwxrwx 1 student student 3 2012-12-23 17:24 s3 -> 1.c*

student@loony ~/new $ ./prog s1

________________________________

________________________________

  1. Какой будет результат после выполнения программы prog. Приведен ниже:

Используемые функции:

Int stat( const char *filename, struct stat *buf); - следует по символьным ссылкам

Поле: st_mode /* тип и защита, закодированы в одном поле*/

Используемые макросы:

S_IFMT 0170000 маска для всех битовых полей типа файла

S_IFLNK 0120000 символическая ссылка

S_IFREG 0100000 обычный файл

S_IFDIR 0040000 каталог

Листинг:

#include <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

#include <stdio.h>

int main(int argc, char **argv)

{struct stat s; stat(argv[1], &s);

fprintf(stdout,"%d Ссылки на файл\n", s.st_nlink);

fprintf(stdout,"Размер %d байт\n", s.st_size);}

student@loony ~/new $ ls -lF

-rwx------ 3 student student 187 2012-12-23 17:20 1.c*

drwxrwxr-x 2 student student 4096 2012-12-23 16:48 p1/

-rwxrwxr-x 1 student student 8623 2012-12-23 20:29 prog*

lrwxrwxrwx 1 student student 2 2012-12-23 17:22 s1 -> p1/

lrwxrwxrwx 1 student student 3 2012-12-23 17:24 s3 -> 1.c*

student@loony ~/new $ ./prog s3

________________________________

________________________________