#1 普通文件
在写c语言的程序中,我们随手丢上了一个
至少在我的系统上(debian - 9),只要像上面没有前缀的c库头文件,默认位置存储在
/usr/include/*
上面*是为了md文件的显示好看,自己输入的时候只需要一个*.
ls /usr/include/st
stab.h stdint.h stdio.h string.h stropts.h
stdc-predef.h stdio_ext.h stdlib.h strings.h
看,有你熟悉的文件吗?
#2.有前缀的<sys/socket.h>
这个文件在编写unix网络程序的时候,是必须用到的文件之一,那么,这个文件位于哪里?记住,首先这种文件位于/usr/include/目录下。
使用命令查找一下就可以了。
find /usr/include/ -name socket.h
在我的系统上显示了如下的内容:
yubo@debian:~$ find /usr/include/ -name socket.h
/usr/include/linux/socket.h
/usr/include/asm-generic/socket.h
/usr/include/x86_64-linux-gnu/bits/socket.h
/usr/include/x86_64-linux-gnu/sys/socket.h
/usr/include/x86_64-linux-gnu/asm/socket.h
那么,从头文件上来看,上面第4个文件符合我的目的。
好了,有了以下内容,请看一下下面的头文件:
#include <stdio.h>
#include <signal.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/ip_icmp.h>
#include <stdlib.h>
#include <netdb.h>
#include <setjmp.h>
#include <errno.h>
其实这里面还涉及到一个glibc的问题,我们有时间再讲这方面的内容,