小编Izz*_*zzo的帖子

哪个 Linux 进程负责响应 ping?

我有一个基于 Linux 的进程控制器,它偶尔会锁定到无法 ping 的程度(即我可以 ping 它,然后如果不对网络设置进行任何修改,它就不再可 ping 通)。

我很好奇,什么进程/系统负责实际响应 ping?看来这个过程正在崩溃。

ping icmp network-interface

41
推荐指数
3
解决办法
1万
查看次数

当静态链接到 .a 文件时,C 编译器是否会丢弃未使用的函数?

假设我有一个静态main.c链接到libmine.a. 静态链接到库会导致库函数在编译时嵌入到主可执行文件中。

如果libmine.a要提供 未使用的函数main.c,编译器(例如 GCC)会丢弃这些函数吗?

这个问题的灵感来自于“常见消息传递”,即使用静态库会使可执行文件更大,所以我很好奇编译器是否至少从存档文件中删除未使用的代码。

compiling c compiler libraries static-linking

35
推荐指数
2
解决办法
9482
查看次数

系统调用函数如何链接到可执行文件?

假设我编写了一个无意义的程序,其特征是单个系统调用open

#include <fcntl.h> 

void main()
{
    int hi = open("does not exist", 0);
}
Run Code Online (Sandbox Code Playgroud)

当我编译程序并对ldd输出发出命令时,我得到以下信息:

linux-vdso.so.1 (0x00007ffddd741000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6835328000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6835584000)
Run Code Online (Sandbox Code Playgroud)

我只识别该libc.so.6链接,但不识别其他链接。

这些其他库之一是否包含内核系统调用?或者系统调用函数有可能是静态链接的吗?(似乎不太可能)。

gcc system-calls dynamic-linking

1
推荐指数
1
解决办法
532
查看次数