私はLinuxのglibcのソースを調べていましたが、実際に何が行われているのかわかりません。以下はio/chdir.c
のものですが、ソースファイルの多くを示しています。何が起きてる?明らかに私は何かが足りない。秘密は何ですか、それはシステムコールをするか、実際に何かをしますか?ここで、syscallsはglibcのソースにあります
stub_warning
は、いくつかのレガシークレイジーです。 __set_errno
は、errno
を設定する単純なマクロのようです。そして、私が百万人の使用を見つけている間に、私はそれがどこにでも定義されているのを見ません。weak_alias
glibcがどのように動作するかを理解するのに役立つガイドがありますか?
#include <errno.h>
#include <stddef.h>
#include <unistd.h>
/* Change the current directory to PATH. */
int
__chdir (path)
const char *path;
{
if (path == NULL)
{
__set_errno (EINVAL);
return -1;
}
__set_errno (ENOSYS);
return -1;
}
stub_warning (chdir)
weak_alias (__chdir, chdir)
#include <stub-tag.h>
よろしくお願いいたします。この玉ねぎには、私が予想していたよりも多くの層があります。みんなありがとう。乞うご期待。数週間後にはもっと歓声が上がるかもしれません。 – ValenceElectron