我正试图导航和理解whoami (和其他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 ();这大概是我兔子洞停的地方。geteuid()在gnulib/lib/euidaccess.c中提到,但没有明确定义AFAICT。它在/usr/local/unistd.h中也被引用为extern,但与抓取我所看到的uid无关。
我之所以来到这里,主要是因为我在已知的系统头中对geteuid进行了大量的庆祝,并且在追溯它的定义时遇到了困难。
问题:我如何进一步深入研究geteuid()的源代码?什么是最有效的方法来快速探索这个代码库,而不用到处打招呼?
我在Ubuntu服务器15.04上使用Vim和一些ctag(这对于导航现有的系统标头没有多大帮助)。我是一个糟糕的开发人员,这是我的学习方法,尽管我无法通过这个障碍。
发布于 2015-11-26 07:24:48
https://stackoverflow.com/questions/33928920
复制相似问题