chdirsaf.c

来自「制作2.6内核的CLFS时 patch包」· C语言 代码 · 共 35 行

C
35
字号
/* A safer version of chdir, which returns back to the   initial working directory when the program exits.  */#include <errno.h>#include <stdlib.h>#include <unistd.h>static char *initial_wd;static voidrestore_wd (void){  chdir (initial_wd);}intchdir_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);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?