xgetcwd.c

来自「这是一个SIGMA方案的PMP播放器的UCLINUX程序,可播放DVD,VCD,」· C语言 代码 · 共 49 行

C
49
字号
/* * xgetcwd.c -- return current directory with unlimited length * Copyright (C) 1992, 1996 Free Software Foundation, Inc. * Written by David MacKenzie <djm@gnu.ai.mit.edu>. * * Special function for busybox written by Vladimir Oleynik <vodz@usa.net>*/#include <stdlib.h>#include <errno.h>#include <unistd.h>#include <limits.h>#include <sys/param.h>#include "libbb.h"/* Amount to increase buffer size by in each try. */#define PATH_INCR 32/* Return the current directory, newly allocated, arbitrarily long.   Return NULL and set errno on error.   If argument is not NULL (previous usage allocate memory), call free()*/char *xgetcwd (char *cwd){  char *ret;  unsigned path_max;  path_max = (unsigned) PATH_MAX;  path_max += 2;                /* The getcwd docs say to do this. */  if(cwd==0)	cwd = xmalloc (path_max);  while ((ret = getcwd (cwd, path_max)) == NULL && errno == ERANGE) {      path_max += PATH_INCR;      cwd = xrealloc (cwd, path_max);  }  if (ret == NULL) {      free (cwd);      perror_msg("getcwd()");      return NULL;  }  return cwd;}

⌨️ 快捷键说明

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