
c/c++
文章平均质量分 85
witto_sdy
这个作者很懒,什么都没留下…
展开
-
assert()函数用法总结
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badp转载 2013-03-04 15:04:00 · 291 阅读 · 0 评论 -
aes加密c++实现
工作中用到aes加密,项目中没有可用的接口(类),遂google.整理了原理及代码,代码转自:https://blog.youkuaiyun.com/csdn49532/article/details/50686222?utm_source=blogxgwz0什么是AES算法AES是典型的对称加密算法,不同于信息摘要算法(md5,sha等)。AES的工作步骤:而摘要算法是不可逆的,它主...原创 2018-10-25 10:52:05 · 28936 阅读 · 8 评论 -
异常图标导致转码失败
项目代码中有人使用iconv函数将utf8转成ucs2,但是没有对转换失败的流程做处理,产生现网bug。了解后发现,iconv_open有个自带功能可能会解决。那就是在目标编码后面追加//IGNORE,可以忽略转换失败的部分。man手册中的解释是这样的:iconv_t iconv_open(const char *tocode, const char *fromcode);DESCRI...原创 2018-08-23 15:15:16 · 308 阅读 · 0 评论 -
嵌入式SQL
在C语言程序代码中直接嵌入SQL语句,使数据库编程变得非常简单明了,而且嵌入式SQL是一种标准,代码不需要很多的修改就能移植到支持嵌入式SQL的数据库系统上去,但这同时也是一个缺点,许多数据库系统不提供嵌入式SQL的预编译器。1.1 编译编译过程分为两步,第一步,对带有嵌入式SQL的C代码程序(通常此程序以.pc结尾,简称PC代码)使用proc做一次预编译,将里面的嵌入式SQ转载 2014-08-14 10:22:12 · 759 阅读 · 0 评论 -
C语言宏定义技巧
在搜索宏定义溢出问题时,看到此文章,觉得不错,收藏。http://hi.baidu.com/luqinlive/item/6e5b3ddc5c32a0e73dc2cbb5写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。1,防止一个头文件被重复包含#ifndef COMDEF_H#def转载 2014-02-13 12:45:32 · 669 阅读 · 0 评论 -
父进程等待子进程终止 wait, WIFEXITED, WEXITSTATUS
看平台job的代码时遇到WIFEXITED,WEXITSTATUS函数,不知所以,有此转载。详解:http://blog.youkuaiyun.com/witto_sdy/article/details/8853620wait()的函数原型是:#include #include pid_t wait(int *status)进程一旦调用了wait,就立即阻塞自己,转载 2013-04-26 11:05:44 · 556 阅读 · 0 评论 -
waitpid函数详解
【waitpid系统调用】 功能描述: 等待进程改变其状态。所有下面哪些调用都被用于等待子进程状态的改变,获取状态已改变的子进程信息。状态改变可被认为是:1.子进程已终止。2.信号导致子进程停止执行。3.信号恢复子进程的执行。在子进程终止的情况下,wait调用将允许系统释放与子进程关联的资源。如果不执行wait,终止了的子进程会停留在"zombie"状态。 如果发现转载 2013-04-26 11:27:41 · 1206 阅读 · 0 评论 -
C语言:内存字节对齐详解
一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只转载 2013-03-27 18:30:02 · 413 阅读 · 0 评论 -
Linux c access 函数
#include int access(const char *pathname, int mode);DESCRIPTION access() checks whether the calling process can access the file pathname. If pathname is a symbolic link, it i原创 2013-04-24 11:05:56 · 776 阅读 · 0 评论 -
malloc,calloc,realloc等内存分配函数区别
三个函数的声明分别是:void* realloc(void* ptr, unsigned newsize);void* malloc(unsigned size);void* calloc(size_t nelem, size_t elsize);都在stdlib.h函数库内它们的返回值都是请求系统分配的地址,如果请求失败就返回NULLmalloc用于申请一段新的地转载 2013-04-24 08:59:26 · 581 阅读 · 0 评论 -
c语言对utf8字符串的截取
utf8编码的汉字一般占用3字节,下面默认汉字全是常规的3字节汉字。void splitUtf8(const char *s, char* store, int l){ if (strlen(s) <= 0 || l <=0) { retur...原创 2019-03-01 10:59:29 · 1322 阅读 · 0 评论