C
文章平均质量分 62
fox1987
这个作者很懒,什么都没留下…
展开
-
内存分配函数
malloc函数简介 原型:extern void *malloc(unsigned int num_bytes); 语法:num_bytes为内存块的字节数 头文件:在TC2.0中可以用malloc.h或 alloc.h (注意:alloc.h 与 malloc.h 的内容是完全一致的),而在Visual C++6.0中可以用malloc.h或者stdlib.h。 功原创 2013-08-08 08:29:05 · 936 阅读 · 0 评论 -
makefile 的相关知识
还是要写makefile了,虽然一直很不喜欢写这个东东。所以整理下自己找到的相关资料入门还是看陈浩的这个跟我一起写makefile一些高级用法和资料整理如下:makefile会按照文件名寻找并执行:查找的文件名顺序为:“GNUmakefile”、“makefile”、“Makefile”。字符串处理函数subst 函数名称:字原创 2014-02-12 11:05:14 · 773 阅读 · 0 评论 -
C++ throw()引发的core
总结最近遇到了一个问题,简单说就是一个禁止抛出异常的函数内抛出了异常所致(无论函数内部直接抛出异常还是间接调用函数抛出异常)官方文档说明如下: 即一个throw()的函数意味着对任何异常调用std::unexpected而std::unexpected函数的官方文档说明如下:即该函数默认为调用terminate函数 而terminate函数的说明如下:原创 2014-03-03 20:23:52 · 2198 阅读 · 0 评论 -
linux的waitpid 和wait 以及fg 和bg命令
接上篇:linux 的nohup & 和daemon 总结, 这里总结下waitpid和bg 和fg命令waitpid函数说明:#includesys/types.h>#include定义函数 pid_twaitpid(pid_t pid,int * status,int options);其他数值意义如下:pid等待进程组识别码为 pid 绝对值的任何子进程。原创 2014-03-08 11:43:40 · 1889 阅读 · 0 评论 -
【转载】关于const与volatile笔试题目的分析
源自 http://yaronspace.cn/blog/archives/category/%E9%9D%A2%E8%AF%95%E9%A2%98昨天笔试遇到了关于c++中关于const与const_cast的题目,大概如下:int main(int argc, char* argv[]){ const int a = 10; int * p = co转载 2013-08-08 08:29:40 · 849 阅读 · 0 评论 -
C 调试工具小记
记录下C的调试g原创 2014-07-20 18:14:26 · 798 阅读 · 0 评论 -
posix多线程有感--自旋锁
转载自:http://www.csdn123.com/html/blogs/20130509/11141.htm自旋锁是SMP架构中的一种low-level的同步机制。 当线程A想要获取一把自旋锁而该锁又被其它线程锁持有时,线程A会在一个循环中自旋以检测锁是不是已经可用了。对于自选锁需要注意:由于自旋时不释放CPU,因而持有自旋锁的线程应该尽快释放自旋锁,否则等待该自旋锁的转载 2014-08-20 19:42:08 · 721 阅读 · 0 评论 -
C++ 宏 为什么建议 do while (0) 的写法
在C++中,在使用宏的时候,建议使用do { xxxx;} while(0)的写法hao原创 2014-08-16 23:09:53 · 1575 阅读 · 0 评论 -
fork和vfork的区别
参见百度百科API说明:fork头文件:#include#include函数原型:pid_t fork( void);(pid_t 是一个宏定义,其实质是int 被定义在#includesys/types.h>中)返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1函数说明:一个现有进程可以调用fork函数创建一个新进原创 2013-09-08 08:33:48 · 1654 阅读 · 0 评论 -
库函数调用和系统调用的区别
函数库调用 VS 系统调用 函数库调用系统调用在所有的ANSI C编译器版本中,C库函数是相同的各个操作系统的系统调用是不同的它调用函数库中的一段程序(或函数)它调用系统内核的服务与用户程序相联系是操作系统的一个入口点在用户地址空间执行转载 2014-10-23 10:19:47 · 632 阅读 · 0 评论 -
孤儿进程与僵尸进程[总结]
孤儿进程与僵尸进程[总结]1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念 我们知道在unix/linux中,正常情况转载 2014-10-09 16:41:26 · 611 阅读 · 0 评论 -
linux 的fork 和 vfork
fork fork 是linux下创建新进程的函数。 函数原型:pid_t fork( void); (pid_t 是一个宏定义,其实质是int 被定义在#includesys/types.h>中) 返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程I原创 2015-06-10 23:50:43 · 656 阅读 · 0 评论 -
unix/linux下线程私有数据实现原理及使用方法
转载自:http://blog.csdn.net/caigen1988/article/details/7901248复习以前做过的爬虫系统,在做防止死链时用到了线程的私有数据,那时候仅仅是会用,至于底层是怎么实现的以及为什么一个键可以对应不同线程的指还一知半解,今天又详细的看了下相关的资料,以做总结。 在维护每个线程的私有数据的时候,我们可能会想到分配一个保存线程数据的转载 2013-10-23 15:29:45 · 944 阅读 · 0 评论 -
pthread_key_setspecific和pthread_key_getspecific 用法
#include pthread.h>void *pthread_getspecific(pthread_key_t key);int pthread_setspecific(pthread_key_t key, const void *value);设置线程共享数据的函数。在线程中调用英文说明如下:pthread_setspecific 将数据绑定原创 2013-10-22 17:48:05 · 1032 阅读 · 0 评论 -
获取机器的IP信息
机器多个网卡或者绑定多个ip时, 获取机器IP信息: ifaddrs的结构如下 1: struct ifaddrs 2: { 3: struct ifaddrs *ifa_next; /* Next item in list */ 4: char原创 2013-08-08 08:31:23 · 863 阅读 · 0 评论 -
linux socket编程client获取使用的ip和port
今天为了测试机器绑定多ip时socket client使用的ip和port,因此查询资料看了下如何获取client的ip和port(系统自选而不是bind绑定)主要是对连接的描述符通过getsockname 函数获取client的地址信息,函数说明如下#include int getsockname(int sockfd, struct sockaddr *localaddr, so原创 2013-08-08 08:31:25 · 4007 阅读 · 0 评论 -
堆和栈
一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在原创 2013-08-08 08:28:58 · 706 阅读 · 0 评论 -
[转载]描述C,C++编译和链接过程
[转载自http://my.oschina.net/anyway/blog/11262] 详解link 有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本原创 2013-08-08 08:29:07 · 639 阅读 · 0 评论 -
linux mkdir函数使用注意
linux的mkdir 函数原型如下:int mkdir(const char *pathname, mode_t mode);今天使用linux的mkdir创建目录。函数说明: mkdir()函数以mode方式创建一个以参数pathname命名的目录,mode定义新创建目录的权限。返回值: 若目录创建成功,则返回0;否则返回-1,并将错误记录到全局变量errno中。原创 2013-08-08 08:29:20 · 2303 阅读 · 0 评论 -
makefile 学习
【转载,非常不错的一篇博文,循序渐进,简单易懂】假设我们有下面这样的一个程序,源代码如下: /* main.c */ #include #include int main(int argc,char **argv) { mytool1_print("hello"); mytool2_print("hello"); } /* mytool1.h */ #ifndef _MYTOOL_1_H转载 2013-08-08 08:28:56 · 643 阅读 · 0 评论 -
strcmp函数的使用的一个坑
根据百度百科的:http://baike.baidu.com/view/1026924.htm函数简介原型:extern int strcmp(const char *s1,const char * s2);所在头文件:string.h功能:比较字符串s1和s2。一般形式:strcmp(字符串1,字符串2)说明:当s1当s1==s2时,返回值= 0当s1>s2时原创 2013-08-17 07:32:54 · 6225 阅读 · 1 评论 -
linux的线程锁比较
spinlockspinlock介绍spinlock又称自旋锁,线程通过busy-wait-loop的方式来获取锁,任时刻只有一个线程能够获得锁,其他线程忙等待直到获得锁。spinlock在多处理器多线程环境的场景中有很广泛的使用,一般要求使用spinlock的临界区尽量简短,这样获取的锁可以尽快释放,以满足其他忙等的线程。Spinlock和mutex不同,spinlock不会导致线程的状原创 2013-09-06 12:58:48 · 1903 阅读 · 0 评论 -
IO复用: select 和poll 到epoll
linux 提供了select、poll和epoll三种接口来实现多路IO复用。下面总结下这三种接口。select该函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或经历一段指定的时间后才唤醒它。函数接口: 1: #include 2: #include 3: 4: int select(int maxfdp1原创 2013-09-10 18:30:05 · 970 阅读 · 0 评论 -
linux 下的多线程编程
Linux 下POSIX线程 使用threadid标识一个线程。创建线程的函数如下: 1: #include 2: 3: int pthread_create( 4: pthread_t *restrict tidp, 5: const pthread_attr_t *restrict attr,原创 2013-08-29 09:31:01 · 705 阅读 · 0 评论 -
memmove和memcpy
转载至 http://www.cnblogs.com/foxinhongyan/articles/1267624.htmlmemmove和memcpy1.memmove函数原型:void *memmove(void *dest, const void *source, size_t count)返回值说明:返回指向dest的void *指针参数说明:转载 2013-10-03 12:35:53 · 600 阅读 · 0 评论 -
C语言的那些个关键字们
转载自:http://www.spongeliu.com/236.html最近感冒,昨天流着鼻涕去一直很想去的某M面试,居然还迟到了,一紧张,鼻涕不流了- -#问的问题不难,都是基础,可是自己不争气,答的不怎么样,一直自诩C语言用的很不错,可是还是在基础上被鄙视- -!都是那些个关键字们阿~今天,让我挨个把C的关键字给详细的整一整,加深一下印象~首先,C语言中到底有多少个关转载 2015-08-28 15:23:29 · 891 阅读 · 0 评论