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()得到当前路径。
这个命令的实现很简单。记录一下。
转载于:https://blog.51cto.com/neilhappy/1133847