【socket网络编程】记录博(Linux、C)

最近在写网络安全实验,感觉欠缺的东西太多了,边写边总结记录一下。

Linux+C

一些函数积累

地址转换

头文件:<arpa/inet.h>

in_addr_t inet_addr(const char* cp):将字符串形式的IP地址 -> 网络字节顺序 的整型值

  • 返回值in_addr_t一般为32位unsigned int,若字符串有效,则将字符串转换为32位二进制网络字节序的IPV4地址;否则,为INADDR_NONE;

char *inet_ntoa(struct in_addr):网络字节顺序的整型值 ->字符串形式的IP地址(点分十进制)

参数:in_addr为结构体,表示32位IP地址

  struct in_addr{
           in_addr_t s_addr;        //32位unsigned int
  }

系统调用

进程

头文件:<sys/types.h> and <unistd.h>

pid_t getpid(void):返回当前进程表示;

pid_t getppid(void):返回父进程标识;

返回值:pid_t 定义如下,使用此标识可能是为了更好的移植性;不同的环境可能定义的类型不一样

sys/types.h:
typedef short           pid_t;       /* used for process ids */

获取时间

头文件:<sys/time.h>

int gettimeofday(struct timeval *tv, struct timezone *tz)

tv返回目前的时间、tz所指的结构返回当时地区的信息;返回值 0 成功;-1失败,原因存于errno;

struct timeval{
	long tv_sec; //秒
	long tv_usec;//微秒
};
struct timezone{
	int tz_minuteswest;//和greenwich时间查了多少分钟
	int tz_dsttime; //DST 时间的修正方式
};

【socket网络编程】记录博(Linux、C)

上一篇:Mac word文档的消失问题以及解决方案


下一篇:ubuntu下载速度慢的解决办法--修改下载源