Системное программирование в UNIX средствами Free Pascal



Описание


uses stdio;

function chdir(path:pchar):integer;

После выполнения системного вызова chdir каталог path становится текущим рабочим каталогом вызывающего процесса. Важно отметить, что эти изменения относятся только к процессу, который выполняет вызов chdir. Смена текущего каталога в программе не затрагивает запустивший программу командный интерпретатор, поэтому после выхода из программы пользователь окажется в том же рабочем каталоге, в котором он находился перед запуском программы, независимо от перемещений программы.

Системный вызов chdir завершится неудачей и вернет значение -1, если путь path не является корректным именем каталога или если вызывающий процесс не имеет доступ на выполнение (прохождение) для всех каталогов в пути.

Системный вызов может успешно использоваться, если нужно получить доступ к нескольким файлам в заданном каталоге. Смена каталога и задание имен файлов относительно нового каталога будет более эффективной, чем использование абсолютных имен файлов. Это связано с тем, что системе приходится поочередно проверять все каталоги в пути, пока не будет найдено искомое имя файла, поэтому уменьшение числа составляющих в пути файла сэкономит время. Например, вместо использования следующего фрагмента программы

fd1 := fdopen('/usr/ben/abc', Open_RDONLY);

fd2 := fdopen('/usr/ben/xyz', Open_RDWR);

можно использовать:

chdir('/usr/ben');

fd1 := fdopen('abc', Open_RDONLY);

fd2 := fdopen('xyz', Open_RDWR);




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