[英]getnameinfo — what's syscall for it in Linux?
有一個功能https://linux.die.net/man/3/getnameinfo我怎么知道它的系統調用是什么? Linux syscall表中沒有這樣的功能。 還是僅存在於該C庫中?
getnameinfo
沒有直接的系統調用。 它是一個庫函數,它執行許多活動來滿足請求。 例如,當查找主機名時,它可能會嘗試:
/etc/nsswitch.conf
和/etc/hosts
) /etc/resolv.conf
) 如果正確使用getnameinfo
API編寫了一個簡單的應用程序,則可以使用strace
實用程序來查找正在使用的系統調用。 會有很多額外的信息,但是如果您仔細研究,將會看到相關的電話。 我系統上相關輸出的幾行:
...
open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3
...
open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 3
...
socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("8.8.8.8")}, 16) = 0
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.