随笔分类 - C语言
摘要:void * memset( void * ptr, int value, size_t num );参数说明: ptr 为要操作的内存的指针。 value 为要设置的值。你既可以向 value 传递 int 类型的值,也可以传递 char 类型的值,int 和 char 可以根据 ASCII 码相
阅读全文
摘要:/* 需要手动计算内存大小,未初始化 */ int *p = (int *)malloc(20 * sizeof(int)); /* 不需要手动计算内存大小,初始化为0 */ int *q = (int *)calloc(20, sizeof(int)); /* 动态内存 扩大/缩小 * 1.成功分
阅读全文
摘要:checksum二进制反码求和计算方法: ip报文:将首部不包含数据,分成多个16位字的序列,将检验和置零,然后进行反码算术运算把所有16位字相加后,将得到的 和的反码 写入检验和字段。接收方接收到后,再按照16位字的序列计算一次,得到的和为1,取反码为0. udp:添加一个12字节 ip伪首部(源
阅读全文
摘要:typedef struct st_setting { char agen[10]; unsigned char file_no; }st_setting_t; int main(int argc, char** argv) { #define IPCKEY 0x366378 int shm_id;
阅读全文
摘要:交换指针变量x和y所指向的存储位置处存放的值,不需要第三个位置来存储临时变量。这种方式并没有性能上的优势。 void replace(int *x, int *y) { *y = *x ^ *y; *x = *x ^ *y; *y = *x ^ *y; }
阅读全文
摘要:/* C语言去除字符串首尾空格,trim()函数实现 https://blog.csdn.net/u013022032/article/details/50521465 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> //去除尾部空白字符 包括\t \n \r /* 标准的空白字符包括
阅读全文
摘要:Linux的错误码包含在/usr/include/asm-generic/errno-base.h和/usr/include/asm-generic/errno.h 这两个文件内:
阅读全文
摘要:#include<unistd.h>int access(const char* pathname, int mode);参数介绍: pathname 是文件的路径名+文件名 mode:指定access的作用,取值如下: F_OK 值为0,判断文件是否存在 X_OK 值为1,判断对文件是可执行权限
阅读全文