busybox源码剖析(2)

来源:互联网 发布:c语言华氏度 编辑:程序博客网 时间:2024/06/05 01:52

     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()得到当前路径。

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


<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>