编程基础
chinaunixj
这个作者很懒,什么都没留下…
展开
-
IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到有位转载 2012-03-16 14:11:32 · 683 阅读 · 1 评论 -
memmove
相关函数: bcopy(), memccpy(),memcpy(), strcpy(), strncpy()表头文件: #include 定义函数: void *memmove(void *dest, const void *src, size_t n);函数说明: memmove()与memcpy()一样都是用来拷贝src所指的内存内容前n个字节到dest所指的地址上。不同的是,转载 2012-04-19 14:06:16 · 674 阅读 · 0 评论 -
对字符数组,字符指针,字符串常量以及其sizeof的一些总结
对字符数组,字符指针,字符串常量以及其sizeof的一些总结在网上经常看到一些类似字符串或者sizeof等的公司笔试题,鄙人不才,但也作了一些总结,这些总结都是在vc2003下测试得到的结果,如果不对,请指出。1.以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写 "abc",那么编译器帮你存储的是"abc/0"2."abc"是常量吗?答案是有转载 2012-04-19 16:04:39 · 670 阅读 · 3 评论 -
memmove 和memcpy
1.memmove函数原型:void *memmove(void *dest, const void *source, size_t count)返回值说明:返回指向dest的void *指针参数说明:dest,source分别为目标串和源串的首地址。count为要移动的字符的个数函数说明:memmove用于从source拷贝count个字符到dest,如果目标区域和源区域有重叠的转载 2012-04-19 14:04:33 · 488 阅读 · 0 评论 -
常量指针和指针常量
一、可能的组合: (1)const char*p (2)char const*p (3)char *const p (4)const char **p (5)char const**p (6)char *const *p (7)char **const p 当然还有在(5)、转载 2012-04-19 16:32:37 · 531 阅读 · 0 评论 -
memcpy和memmove的区别
memcpy和memmove的区别 memcpy()和memmove()都是C语言中的库函数,在头文件string.h中,其原型分别如下: void*memcpy(void*dst, const void *src, size_t count);void *memmove(void*转载 2012-04-19 14:54:35 · 622 阅读 · 1 评论 -
memcopy, memset, strcopy, strncpy用法总结
memcpy原型:extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。可以拿它拷贝任何数据类型的对象。 举例:char a[100],转载 2012-04-19 15:39:53 · 623 阅读 · 0 评论 -
互斥量和信号量的区别
1.互斥量用于线程的互斥,信号量用于线程的同步。这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少转载 2012-04-19 11:44:02 · 2184 阅读 · 0 评论 -
vi/Vim + Cscope/Ctags
使用vim + cscope/ctags,就可以实现SourceInsight的功能,以后可以不再用盗版SouceInsight读代码了。按照vim里cscope的参考手册(在vim中执行”:help cscope”命令),把cscope功能加到.vimrc里后(需要你的vim在编译时选择了”–enable-cscope”选项,否则你需要重新编译vim),配置就算完成了。然后用下面的命令生成代转载 2012-03-21 13:47:25 · 743 阅读 · 0 评论 -
vim+ctags+cscope 打造Android源码阅读工具
vim+ctags+cscope 打造Android源码阅读工具http://hi.baidu.com/snownight/blog/item/2f6e6327fe8e0210918f9d94.htmlvim+ctags+cscope 打造Android源码阅读工具2011-02-17 10:111. 在Android源码顶层目录下运行ctags -R 生成tags文件2.转载 2012-03-21 13:30:35 · 4421 阅读 · 0 评论 -
fgetc, EOF 及其它
在另一个贴子中,我与一些朋友对 getc 展开了一些讨论. 由于觉得楼主最终未能明白我的意思,所以我把我个人的看法总结出来,写在这里.我不太擅长说明,但已经尽力了. 任何人转本贴, 请务必把本人的名字写在显眼的位置. 约定编译器为 gcc2/x86: 所以 char, unsigned char 为 8 位, int 为 32 位请参考 http://bbs.ch转载 2012-03-20 15:39:50 · 855 阅读 · 0 评论 -
Linux系统管道和有名管道的通信机制
Linux 进程间通信的几种主要手段。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 认清管道和有名管道的读写规则是在程序中应用它们的关键,本文在详细讨论了管道和有名管道的通信机制的基础上,用实例对其读写规则进行了程序验证,这样做有利于增强读者对读写规则的感性认识,转载 2012-03-16 11:29:27 · 711 阅读 · 0 评论 -
memcpy与memmove的实现
/* memcpy是不管有否区域重叠的,重叠不重叠照样复制, memmove才会避免区域重叠,检测这个区域重叠很简单,如果目标地址在源区域内,那就会发生重叠. 处理重叠也很简单,从源地址的末尾开始反方向复制就OK了。未重叠的情况: 内存布局(little endian): higher address lo转载 2012-04-19 14:09:58 · 658 阅读 · 0 评论