C语言
文章平均质量分 92
随心记IT
这个作者很懒,什么都没留下…
展开
-
printf打印设置字体和背景带颜色的输出方法
为了方便调试,难免会加一些log信息,当有大量log时,去翻阅很难一眼看出错误信息,这时就可以对log设置某些颜色或者高亮度等等。具体格式如下:printf("\033[字背景颜色;字体颜色m 字符串 \033[0m");例子:printf("\033[1m\033[45;33m HELLO_WORLD \033[0m\n");颜色代码...原创 2019-11-18 14:43:44 · 1064 阅读 · 0 评论 -
C语言可变参数的使用
概要众所周知,C++支出函数重载,而C语言默认是不支持。但是,c语言可以通过可变参数实现类似函数重载的功能。如LinuxC 的open()函数,这个函数有2个版本。有一个可选的第三个参数时只需要文件可能被创建。第三个参数描述了使用新文件的权限设置。#include <sys/types.h>#include <sys/stat.h>#include &...转载 2017-06-14 13:42:51 · 562 阅读 · 0 评论 -
sync()函数的作用
sync是C语言的一个库函数。调用sync可以将系统缓冲区(内存中)的数据写入到文件系统(磁盘)中。头文件:#include函数定义:int sync(void);返回值:当同步成功返回0,否则返回-1。函数功能:将系统缓冲区中的内容写回磁盘,以确保数据同步。在操作系统中,除非设置了自动同步,否则为了减少磁盘的写入量,延长磁盘寿命,写入文件时并不是即时写入到磁盘中,原创 2017-06-05 13:45:29 · 9410 阅读 · 0 评论 -
TCP/IP checksum 简析
Checksum原理Checksum广泛应用于TCP/IP协议族,用于校验IP、TCP、UDP数据,其原理比较简单,其计算校验和的步骤如下: 1)在数据发送端,首先将检验和字段本身清零,将被检验的相邻字节成对配成16bit的整数,将所有的配对相加,同时将进位加到校验和的低字节上,我们将得到的校验和定义为a,最后再将校验和取反记为-a,将-a放到校验和字段发送到网络中。 2)如果在数原创 2017-08-16 19:01:27 · 1174 阅读 · 1 评论 -
checksum校验
原理 P/ICMP/IGMP/TCP/UDP等协议的校验和算法都是相同的,采用的都是将数据流视为16位整数流进行重复叠加计算。为了计算检验和,首先把检验和字段置为0。然后,对有效数据范围内中每个16位进行二进制反码求和,结果存在检验和字段中,如果数据长度为奇数则补一字节0。当收到数据后,同样对有效数据范围中每个16位数进行二进制反码的求和。由于接收方在计算过程中包含了发送原创 2017-08-16 19:55:45 · 2657 阅读 · 0 评论 -
计算从1970年到当前时间所经历过的秒数
这个算法来自LINUX的源码,下面带有大神的解析,自己在RTC实验中也使用了,不用月份表,润平年的处理,几行就可得出结果,以下是程序和大神的解析Linux源码中的mktime算法解析 我们知道,从CMOS中读出来的系统时间并不是time_t类型,而是类似于struct tm那样,年月日时分秒是分开存储的。 那么,要把它转化为系统便于处理的time_t类型,就需要算法进行转换。...翻译 2019-09-18 18:22:54 · 17277 阅读 · 1 评论