c
VMA_LMA
这个作者很懒,什么都没留下…
展开
-
由scanf("%d",&ch);引出的输入缓冲区问题
刚才一个朋友发了一段代码:#includestdio.h>int main(void){ int i; char c; for(i=0;i5;i++) { scanf("%d",&c); printf("i=%d\r\n",i); } printf("The loop is fi转载 2013-03-05 17:02:48 · 798 阅读 · 0 评论 -
内存池
内存池技术的原理与实现 序言 最近在网上看到了几篇篇讲述内存池技术的文章,有一篇是有IBM中国研发中心的人写的,写的不错~~文章地址在本篇blog最后。原文的讲述比我的要清晰很多,我在这只是把我的一些理解和遇到的一些问题和大家分享一下~~一、为什么要使用内存池技术呢 主要有两个原因:1、减少new、delete次数,减少运行时间;2、避免内存碎片。 1、效转载 2016-05-10 17:01:31 · 592 阅读 · 0 评论 -
信息队列
1.系统管理员登录 建立用户testl,testh su useradd testl;passwd testl useradd testh;passwd testh 安全管理员登录 semanage user -m -r s0:i15-s15:i0:c0.c1023 user_u semanage login -a -s user_u转载 2014-10-22 14:53:17 · 551 阅读 · 0 评论 -
线程的取消/撤销(cancel)
线程的取消/撤销(cancel)1 线程取消的定义一般情况下,线程在其主体函数退出的时候会自动终止,但同时也可以因为接收到另一个线程发来的终止(取消)请求而强制终止。2 线程取消的语义1. 线程取消的方法是向目标线程发Cancel信号,但如何处理Cancel信号则由目标线程自己决定,或者忽略(当禁止取消时)、或者立即终止(当在取消点或异步模式下)、或者继续运行至转载 2013-11-12 16:18:36 · 910 阅读 · 0 评论 -
memcopy和memmove的区别(笔试,面试)
memcopy和memmove的区别(笔试,面试)Memcopy和memmove函数在linux下看了一下两个函数的源码。两个函数都在头文件string.h中定义,函数原型为:void * __cdecl memcpy ( void * dst,const void * src,size_t count);void * __cdecl memmove ( v转载 2013-11-19 15:38:20 · 825 阅读 · 0 评论 -
Linux线程同步之条件变量
与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为转载 2013-10-31 15:56:54 · 680 阅读 · 0 评论 -
inux epoll模型
Linux epoll模型定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。因为它会复用文件描述符集合来传递结果而不是迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一个原因就是获取事件的时候,它无转载 2013-10-29 15:35:38 · 788 阅读 · 0 评论 -
struct timeval结构体
一、struct timeval结构体struct timeval结构体在time.h中的定义为:struct timeval{__time_t tv_sec; /* Seconds. */__suseconds_t tv_usec; /* Microseconds. */};其中,tv_sec为Epoch到创建s转载 2013-09-02 10:21:06 · 1299 阅读 · 0 评论 -
struct tm 和 time_t 时间和日期的使用方法(转)
关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。下面主要介绍在C/C++中时间和日期的使用方法.通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一转载 2013-09-02 10:20:00 · 1056 阅读 · 0 评论 -
Linux -C 的read 和 write函数
|字号 订阅读函数read ssize_t read(int fd,void *buf,size_t nbyte) read函数是负责从 fd中读取内容到buf中.成功时,read返回实际所读的字节数,如果返回的值是0,表示已经读到文件的结束了. 小于0表示出现了错误.如果错误为 EINTR说明读是由中断引起的, 如果是ECONNREST表示网络转载 2013-08-20 17:27:46 · 884 阅读 · 0 评论 -
探讨read的返回值的三种情况
探讨read的返回值的三种情况 2011-12-06 21:50:28分类: LINUX作者:gfree.wind@gmail.com博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net 本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载 2013-08-20 17:29:58 · 658 阅读 · 0 评论 -
C语言:为什么用fprintf(stderr,"Error");比printf("Error");更好?
一般情况下,你这两个语句运行的结果是相同的,没有区别,只有一下情况才有区别:运行你的程序的时候,命令行上把输出结果进行的转向,比如使用下面的命令把你的程序a.c运行的结果转向到记事本文件a.txt:a.exe > a.txt在这样的情况,如果使用printf输出错误信息,会保存到a.txt文件里面,如果使用fprintf输出错误,会显示在屏幕上。并且sprintf没有缓冲区转载 2013-05-20 15:33:44 · 5483 阅读 · 0 评论 -
dup 2 dup
up与dup2函数介绍----转载dup和dup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr。这两个函数的原形如下:#include int dup( int oldfd ); int dup2( int oldfd, inttargetfd ) 利用函数dup,我们转载 2013-03-21 11:07:08 · 565 阅读 · 0 评论 -
多进程引用的动态链接库中的全局变量问题
多进程引用的动态链接库中的全局变量问题现有liba.so中定义一个全局变量char buf;libb.so 中的函数print会将buf进行输出。进程A和进程B使用-lb进行编译链接,并在进程A和B中分别对buf进行初始化,如strcpy(buf, "A"); strcpy(buf, "B");进程A和进程B在初始化后分别通过dlopen的方式加载liba.so并调用其中的print函数。...转载 2018-10-12 14:20:10 · 1027 阅读 · 0 评论