/
niceSOFT
/
patch
Обзор
Документация
Войти
/
niceSOFT
/
patch
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
pc/chdirsaf.c
35 строк
580 B
Jim Meyering
maint: arrange for the sc_require_config_h_first test to pass
26 мар 2011, 16:20
26 мар 2011, 16:20
f266434
Код
Авторство
О чём код?
/* A safer version of chdir, which returns back to the initial working directory when the program exits. */ #include <config.h> #include <errno.h> #include <stdlib.h> #include <unistd.h> static char *initial_wd; static void restore_wd (void) { chdir (initial_wd); } int chdir_safer (char const *dir) { if (! initial_wd) { size_t s; for (s = 256; ! (initial_wd = getcwd (0, s)); s *= 2) if (errno != ERANGE) return -1; if (atexit (restore_wd) != 0) { free (initial_wd); initial_wd = 0; return -1; } } return chdir (dir); }