p1-3.c
来自「UNIX程序设计教程」· C语言 代码 · 共 38 行
C
38 行
#include <limits.h>#include <unistd.h>#include <stdio.h>#include <errno.h>char *get_current_dir(){ char *buffer; char *value; int size = 0; /*确定当前工作目录路径名的最大长度于size,当PATH_MAX 不确定时,size为-1*/#ifdef PATH_MAX size = PATH_MAX;#else errno = 0; if ((size = pathconf("./",_PC_PATH_MAX)) < 0) if (errno != 0){ printf("pathconf error for _PC_PATH_MAX\n"); exit(-1); }#endif if (size > 0){ /* PATH_MAX有定义,可以保证分配的空间足以存放路径名*/ buffer = (char *)malloc(size+1); value = getcwd(buffer, size); }else{ /* PATH_MAX没有定义,必须试探性地分配足够的空间来存放路径名*/ size = _POSIX_PATH_MAX; buffer = (char *)malloc(size); while (1) { value = getcwd(buffer, size); if (value == 0 && errno ==ERANGE){ /* buffer太小,重新申请更大的空间 */ size *= 2; free (buffer); buffer = (char *) malloc (size); } } } return buffer;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?