C开发
喜欢丶下雨天
这个作者很懒,什么都没留下…
展开
-
0xC0000005: 读取位置 0x6C6C6568 时发生访问冲突的原因及解决方法
引发的异常: 0xC0000005: 读取位置 0x6C6C6568 时发生访问冲突原创 2017-04-06 10:03:55 · 16446 阅读 · 2 评论 -
connect成功之后,accept返回之前,客户端和服务器的链接是否已建立
这是之前面试时被问到的一个问题,当时以为客户端connect,服务端accept才表示三次握手完成,连接建立,因此回答的是。面试官笑笑让我回去再查查。后来了解到,connect返回成功后,三次握手就已经完成了。已完成的链接会被放入一个队列中,accept的作用就是从已连接队列中取出优先级最高的一个链接,并将它绑定给一个新的fd,服务端就可以通过这个心得fd来recv和send数据了原创 2017-02-22 18:37:31 · 2941 阅读 · 0 评论 -
ld之杂记
1. .a和.o的区别a=archive 存档文件o=object 对象文件简单说.a就是将一个或多个.o封装在了一起变成了存档文件,方法为:ar rcs libxxx.a xxx1.o xxx2.o xxx3.o但是在使用.o和.a编译生成可执行二进制文件时,他们之间是有差别的.o中的所有内容都会被直接编译进二进制文件中.a中的只有被用到的.o才会被编译进原创 2017-08-03 10:52:15 · 313 阅读 · 0 评论 -
.h头文件和.a静态库文件问题记录
场景:1. ocilib目录中有type.h和ocilib.c,其中type.h中定义了一个结构体field_struct(其中有一个字段val,开始为char[1024],后来被加长为char[2048]),并且在ocilib.c中被使用,ocilib.c和type.h被编译成为静态库文件ocilib.a2. svrlib目录中有svrlib.c,其中也使用到了type.h的field_原创 2017-09-19 20:32:24 · 2766 阅读 · 0 评论 -
OCIStmtFetch2时出现Ora-01406错误
1. 场景:使用OCIStmtFetch2批量导出表数据(一次1000条,one_batch=1000),如果OCIStmtFetch2成功,则将导出的数据写入文件;如果OCIStmtFetch2返回OCI_NO_DATA,则使用OCIAttrGet找到最后一次导出的不满1000条的数据条数,也将其内容写入文件;否则,报错退出;2. 发现的问题:如果表中记录数但原创 2017-09-15 18:47:44 · 3967 阅读 · 1 评论 -
快排中partition函数的几种写法记录
void swap(int *a, int *b) { if(a == b) return ; int temp = *a; *a = *b; *b = temp; return ;}int partition1(int *a, unsigned low, unsigned high) { if(low >= high) return ...原创 2018-03-09 14:20:08 · 1101 阅读 · 0 评论 -
ld链接动态库静态库问题
在使用redis写C代码的时候遇到的问题,安装redis时 make install可以看到:mkdir -p/usr/local/include/hiredis /usr/local/libcp -a hiredis.h async.h read.h sds.h adapters/usr/local/include/hirediscp -a libhiredis.so/usr/loc原创 2018-03-09 14:06:21 · 7816 阅读 · 1 评论 -
为什么会有segmentation fault?操作系统是如何探测以及利用这个机制来保护系统的?
segmentation fault应该算是日常引起程序core dump的罪魁祸首了每次排查完,发现是内存越界访问(读/写/执行),修改之后没core了,就到此为止了么?有没有想过,操作系统好厉害!它是如何及时地探测出这个异常,并且终止程序抛出信号的呢?这个问题困扰了我一段时间,最近有时间,查了很多资料,大体算是弄清楚了有一篇非常棒的文章(传送门:http://www.cnblo...原创 2018-12-07 15:27:27 · 656 阅读 · 0 评论