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()得到当前路径。
       这个命令的实现很简单。记录一下。