我试图导航并理解whoami
(和其他coreutils)一直到最底层的源代码,就像练习一样。如何将coreutils跟踪到系统调用?
我至今潜水:
哪里是实际的二进制?
which whoami
/usr/bin/whoami
它在哪里维护?
如何获得源?
git clone git://git.sv.gnu.org/coreutils
- 在哪里存储库中
whoami
源代码?
# find . | grep whoami
./man/whoami.x
./man/whoami.1
./src/whoami.c
./src/whoami
./src/whoami.o
./src/.deps/src_libsinglebin_whoami_a-whoami.Po
./src/.deps/whoami.Po
相关行(84):
uid = geteuid();
这大约是在我的兔子孔停止。在gnulib/lib/euidaccess.c
中提到geteuid()
,但未明确定义AFAICT。它在/usr/local/unistd.h
中也被引用为extern
,但是没有涉及抓取我可以看到的uid的繁重工作。
我在这里通过grep geteuid
在已知的系统头文件中包含,因为我在回溯其定义时遇到了问题。
问题:如何进一步深入探索geteuid()
的源代码?什么是快速探索这个代码库而不用四处搜索的最有效方式?
我在Ubuntu服务器15.04上使用Vim和一些ctags(这对导航现有系统头文件没有太大帮助)。我是一个可怕的开发者,这是我的学习方法,尽管我无法解决这个障碍。
'geteuid()'在'libc'中,Unix标准库。 – Barmar