busybox源码剖析(2)---pwd.c

来源:互联网 发布:淘宝睡衣模特小智慧 编辑:程序博客网 时间:2024/05/17 07:03

     pwd命令是列出当前的路径。

复制代码
 1 extern int pwd_main(int argc, char **argv) 2 { 3     static char *buf;  4      5     buf = xgetcwd(buf); 6      7     if (buf != NULL) { 8         puts(buf); 9         return EXIT_SUCCESS;10     }11     return EXIT_FAILURE;12 }
复制代码

     通过xgetcwd函数将路径保存到buf中。

复制代码
char *xgetcwd (char *cwd){  char *ret;  unsigned path_max;  errno = 0;  path_max = (unsigned) PATH_MAX;  path_max += 2;                /* The getcwd docs say to do this. */  if(cwd==0)    cwd = xmalloc (path_max);  errno = 0;  while ((ret = getcwd (cwd, path_max)) == NULL && errno == ERANGE) {      path_max += PATH_INCR;      cwd = xrealloc (cwd, path_max);      errno = 0;  }  if (ret == NULL) {      int save_errno = errno;      free (cwd);      errno = save_errno;      perror_msg("getcwd()");      return NULL;  }  return cwd;}
复制代码

       通过getcwd()得到当前路径。

       这个命令的实现很简单。记录一下。

原创粉丝点击