Внимательно изучите и наберите в редакторе исходный текст предлагаемой программы:
$ vim fw.c
Cкомпилируйте и запустите программу:
$ gcc fw.c -o fw -lm
$ ./fw
Что при этом произошло? Проверьте значение, которое вернула ваша программа операционной системе:
$ echo $?
Что означает этот код? Убедитесь в том, что программа создала файл data.txt
в текущем каталоге:
$ ls
Выведите содержимое файла на экран:
$ cat data.txt
Теперь запретите запись в файл, перезапустите программу и проанализируйте её работу:
$ chmod -w data.txt
$ ./fw
$ echo $?
$ cat data.txt
Разрешите запись в файл, повторно запустите программу и убедитесь в том, что файл перезаписан:
$ chmod +w data.txt
$ ./fw
$ echo $?
$ cat data.txt
Ознакомьтесь с документацией по функциям fopen()
, fclose()
, fprintf()
, perror()
:
$ man fopen
$ man fclose
$ man fprintf
$ man perror
Внимательно изучите и наберите в редакторе текст программы:
$ vim fr.c
Скомпилируйте, запустите приложение и проанализируйте его работу:
$ gcc fr.c -o fr
$ ./fr
Ознакомьтесь с документацией по функциям fscanf()
, calloc()
, free()
:
$ man fscanf
$ man calloc
$ man free
Внимательно изучите и наберите в редакторе исходный текст следующей программы:
$ vim args.c
Скомпилируйте и запустите приложение:
$ gcc args.c -o args -std=c99
$ ./args
Что при этом произошло? Запустите программу с аргументами:
$ ./args 123 Hello world 12\ 34
Что происходит при таком запуске программы? Убедитесь в том, что программа создала в текущем каталоге файл args.txt
и записала в него переданные ей аргументы:
$ ls
$ cat args.txt
Зачем потребовалось использовать опцию -std=c99
при трансляции программы? Ознакомьтесь с документацией по функциям exit()
, strlen()
, strcpy()
, strcat()
:
$ man exit
$ man strlen
$ man strcpy
$ man strcat
Объясните строку программы, в которой вызывается функция strcpy()
. Что произойдёт, если изменить её так, как указано в комментарии? Всегда ли эти варианты эквивалентны?