Статья: Теория вычислительных процессов и структур

int main( int argc , char *argv[ ] [, char *envp[ ] ] );

Данное объявление позволяет удобно передавать аргументы командной строки и переменные окружения. Определение аргументов:

argc - количество аргументов, которые содержатся в argv[] (всегда больше либо равен 1);

argv - в массиве строки представляют собой параметры из командной строки, введенные пользователем программы. По соглашению, argv [0] – это команда, которой была запущена программа, argv[1] – первый параметр из командной строки и так далее до argv [argc] – элемент, всегда равный NULL;

envp - массив envp общее расширение, существующее во многих UNIX® системах. Это массив строк, которые представляют собой переменные окружения. Массив заканчивается значением NULL.

Следующий пример показывает, как использовать argc, argv и envp в функции main:

#include <iostream.h>

#include <string.h>

void main( int argc, char * argv [], char *envp[] )

{

int iNumberLines = 0; /* По умолчанию нет аргументов */

if( argc == 2 && strcmp(argv[1], "/n" ) == 0 )

iNumberLines = 1;

/* Проходим список строк пока не NULL */

for( int i = 0; envp[i] != NULL; ++i )

{

if( iNumberLines )

cout << i << ": " << envp[i] << "\n";

}

}

Для работы с каталогами существуют системные вызовы:

int mkdir (const char *pathname, mode_t mode) – создание нового каталога,

int rmdir(const char *pathname) – удаление каталога.

Первый параметр – имя создаваемого каталога, второй – права доступа:

retval=mkdir(“/home/s1/t12/alex”,0777);

retval=rmdir(“/home/s1/t12/alex”);

Заметим, что вызов rmdir(“/home/s1/t12/alex”) будет успешен, только если удаляемый каталог пуст, т.е. содержит записи “точка” ( . ) и “двойная точка” (..).

Для открытия или закрытия каталогов существуют вызовы:

#include <dirent.h>

К-во Просмотров: 565
Бесплатно скачать Статья: Теория вычислительных процессов и структур