Операционная система UNIX. Руководство программиста




Как аргументы передаются в программу - часть 2


#include <stdio.h>

main (argc, argv) int argc; char *argv []; { FILE *fopen (), *fin; void perror (), exit ();

if (argc > 1) { if ((fin = fopen (argv [1], "r")) == NULL) { /* Первое %s - для вывода имени программы. Второе %s - для вывода имени файла, который не удалось открыть */ (void) fprintf (stderr, "%s: неудача при попытке открыть файл %s: ", argv [0], argv [1]); perror (""); exit (2); } } . . . }

При разборе shell'ом командной строки аргументами считаются любые последовательности непробельных символов, разделенные пробелами или знаками табуляции. Последовательность символов, заключенных в двойные кавычки (например, "abc def"), считается одним аргументом, даже если в ней встречаются пробелы или табуляции. Разумеется, проверка корректности передаваемых аргументов полностью возлагается на программиста.

Кроме argc и argv, у функции main() есть еще один параметр, обычно обозначаемый как envp. Это массив указателей на цепочки символов, образующих окружение. Более подробная информация о envp имеется в Справочнике программиста в статьях exec(2) и environ(5).




Содержание  Назад  Вперед