本文简单对比一下strace和ltrace的使用和输出信息。
首先编写一个简单的socket服务端和客户端,服务端用父进程来监听listenfd,将请求connfd交给fork出的子进程来处理,主要代码如下:
客户端主要代码如下:
strace和truss用来跟踪一个进程的
系统调用或
信号产生的情况,strace -f -o server.strace ./echoserver得到的服务端strace跟踪文件如下,除了socket相关的库函数(应用编程接口API)以外,还有其他很多系统调用以及SIGCHLD和SIGINT信号:
strace输出文件中,每一行都是一条系统调用,