c++

博客园 首页 新随笔 联系 订阅 管理

随笔分类 -  linux C开发

摘要://头文件/** Default header file for malloc-2.8.x, written by Doug Lea and released to the public domain, as explained at http://creativecommons.org/licenses/publicdomain. last update: Mon Aug 15 08:55:52 2005 Doug Lea (dl at gee) This header is for ANSI C/C++ only. You can set any of the fol... 阅读全文
posted @ 2011-07-21 10:53 lovewcl 阅读(2234) 评论(0) 推荐(0)

摘要:先写一个被调用的函数#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <iostream>int main(){printf("Return 10./n");return 10;}==================================编译后生成一个"rt"的可执行文件运行结果==================================Return 10.============================ 阅读全文
posted @ 2011-06-29 15:58 lovewcl 阅读(3472) 评论(0) 推荐(1)

摘要:请问时间的嘀嗒数是根据什么来设定的有必要明确一些Linux内核时钟驱动中的基本概念。(1)时钟周期(clock cycle)的频率:8253/8254 PIT的本质就是对由晶体振荡器产生的时钟周期进行计数,晶体振荡器在1秒时间内产生的时钟脉冲个数就是时钟周期的频率。Linux用宏 CLOCK_TICK_RATE来表示8254 PIT的输入时钟脉冲的频率(在PC机中这个值通常是1193180HZ),该宏定义在include/asm-i386/timex.h头文件中:#define CLOCK_TICK_RATE 1193180 /* Underlying HZ */(2)时钟滴答(clock t 阅读全文
posted @ 2011-06-28 17:16 lovewcl 阅读(9217) 评论(0) 推荐(1)

摘要:摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主 阅读全文
posted @ 2011-06-27 16:29 lovewcl 阅读(625) 评论(0) 推荐(0)

摘要:fileno()函数功 能:把文件流指针转换成文件描述符相关函数:open, fopen表头文件:#include <stdio.h>定义函数:int fileno(FILE *stream)函数说明:fileno()用来取得参数stream指定的文件流所使用的文件描述词返回值 :返回和stream文件流对应的文件描述符。如果失败,返回-1。范例:#include <stdio.h>main(){ FILE *fp; int fd; fp = fopen("/etc/passwd", "r"); fd = fileno(fp); 阅读全文
posted @ 2011-03-21 13:54 lovewcl 阅读(1042) 评论(0) 推荐(0)

摘要:一.Select 函数详细介绍 Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。 可是使用Select就可以完成非阻塞(所谓非阻塞方式non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有. 阅读全文
posted @ 2011-03-16 12:20 lovewcl 阅读(28349) 评论(4) 推荐(3)

摘要:#include <sys/types.h>#include <sys/socket.h>#include <string.h>#include <netinet/in.h>#include <stdio.h>#include <stdlib.h>#include <errno.h>#define BUFFER 800#define SERV_PORT 3333int main(){ int sockfd,n; socklen_t len; socklen_t src_len; struct sockaddr_ 阅读全文
posted @ 2011-03-16 11:44 lovewcl 阅读(2718) 评论(0) 推荐(0)

摘要:有三种不同的文件锁,这三种都是“咨询性”的,也就是说它们依靠程序之间的合作,所以一个项目中的所有程序封锁政策的一致是非常重要的,当你的程序需要和第三方软件共享文件时应该格外地小心。有些程序利用诸如 FIlENAME.lock的文件锁文件,然后简单地测试此类文件是否存在。这种方法显然不太好,因为当产生文件的进程被杀后,锁文件依然存在,这样文件也许会被永久锁住。UUCP中把产生文件的进程号PID存入文件,但这样做仍然不保险,因为PID的利用是回收型的。这里是三个文件锁函数: flock(); lockf(); fcntl();flock()是从BSD中衍生出来的,但目前在大多数... 阅读全文
posted @ 2011-03-14 19:15 lovewcl 阅读(3077) 评论(0) 推荐(0)

摘要:单独使用gcc的时候,不用考虑C_INCLUDE_PATH/CPLUS_INCLUDE_PATH/LIBRARY_PATH/LD_INCLUDE_PATH这些变量,但使用make的时候,就要显示地提供这些变量(如果必要)静态库的创建与操作:ar [drqtpmx] [options] archive.a object.o-d: 从静态库中删除文件objfile-r: 替换或插入objfile-q: quick append,加入objfile without checking-t: type打印静态库中的成员文件列表-p: Print指定objfile-m: move移动archive中的成员 阅读全文
posted @ 2011-03-14 19:09 lovewcl 阅读(1352) 评论(0) 推荐(0)

摘要:在gcc下用到数学函数,如sqrt。在gcc时要加上 -lm 参数,这样告诉编译器我要用到数学函数了 。如:gcc a.c -o a -lm 阅读全文
posted @ 2011-03-14 00:09 lovewcl 阅读(627) 评论(0) 推荐(0)

摘要:十一过后..小王也刚好即将大学毕业,现在要开始写简历,投简历,找工作了。到了家工作单位,小王欣喜若狂,可再一看,心都凉了半截..“咋了,小王,看你找工作,我都来了帮你大气,怕什么,不就人多点吗..”看着排到电梯口的长龙,我说(其实,我心里也害怕,可也不能说出来不是)。“不是,你不知道,我并不怕面试上有问题,有你在,技术上还是问题吗,不相信自己还不相信你啊,我主要是怕连面试的机会都没有,你看那么多人,不知道要排到哪里去了,你说每年都这样,那些人力主管部门的咋也不想个好办法来改善一下..”小王抱怨道。“呵呵,有需求才会有进步”我哈哈大笑道,“要不这样吧,看这样子,正好给你说说有关Linux设备驱动 阅读全文
posted @ 2011-03-04 16:57 lovewcl 阅读(707) 评论(0) 推荐(1)

摘要:信号量当我们在多用户系统,多进程系统,或是两者混合的系统中使用线程操作编写程序时,我们经常会发现我们有段临界代码,在此处我们需要保证一个进程(或是一个线程的执行)需要排他的访问一个资源。信号量有一个复杂的编程接口。幸运的是,我们可以很容易的为自己提供一个对于大多数的信号量编程问题足够高效的简化接口。为了阻止多个程序同时访问一个共享资源所引起的问题,我们需要一种方法生成并且使用一个标记从而保证在临界区部分一次只有一个线程执行。线程相关的方法,我们可以使用互斥或信号量来控制一个多线程程序对于临界区的访问。编写通用目的的代码保证一个程序排他的访问一个特定的资源是十分困难的,尽管有一个名为Dekker 阅读全文
posted @ 2011-03-03 19:39 lovewcl 阅读(45295) 评论(1) 推荐(1)

摘要:1. #include <sys/stat.h> 2. #include <fcntl.h> 3. #include <sys/mman.h> 4. #include <unistd.h> 5. 6. 7. #include <pthread.h> 8. #include <stdio.h> 9. #include <stdlib.h> 10. 11. 12. 13. 14. int main(void){//2个进程,一个进程完成每次加1,另一个进程完成每次加2,2个进程协作完成累... 阅读全文
posted @ 2011-03-03 18:36 lovewcl 阅读(4612) 评论(1) 推荐(0)

摘要:#include <sys/ipc.h>#include <sys/shm.h>int shmget(key_t key, size_t size, int shmflg); key_t key key标识共享内存的键值: 0/IPC_PRIVATE。 当key的取值为IPC_PRIVATE,则函数shmget()将创建一块新的共享内存;如果key的取值为0,而参数shmflg中设置了IPC_PRIVATE这个标志,则同样将创建一块新的共享内存。在IPC的通信模式下,不管是使用消息队列还是共享内存,甚至是信号量,每个IPC的对象(object)都有唯一的名字,称为“键” 阅读全文
posted @ 2011-03-03 15:55 lovewcl 阅读(1206) 评论(0) 推荐(0)

摘要:根据pathname指定的文件(或目录)名称,以及proj_id参数指定的数字,ftok函数为IPC对象生成一个唯一性的键值。在实际应用中,很容易产生的一个理解是,在proj_id相同的情况下,只要文件(或目录)名称不变,就可以确保ftok返回始终一致的键值。然而,这个理解并非完全正确,有可能给应用开发埋下很隐晦的陷阱。因为ftok的实现存在这样的风险,即在访问同一共享内存的多个进程先后调用ftok函数的时间段中,如果pathname指定的文件(或目录)被删除且重新创建,则文件系统会赋予这个同名文件(或目录)新的i节点信息,于是这些进程所调用的ftok虽然都能正常返回,但得到的键值却并不能保证 阅读全文
posted @ 2011-03-03 15:14 lovewcl 阅读(7442) 评论(0) 推荐(1)

摘要:在System V中,我们经常用用key_t的值来创建或者打开信号量,共享内存和消息队列。这个在IPC的环境中十分的重要,比如说,服务器创建了一个消息队列,等待客户机发送请求。那么如何创建或者打开已有的消息队列呢?一般而言,我们对于服务器使用的路径和项目id(proj_id)是已知的,所以客户机可以获取相同的key来打开 消息队列并进行操作。下面就是ftok的使用原型:# include <sys/types.h># include <sys/ipc.h>key_t ftok(const char *pathname, int proj_id);注意:1)path... 阅读全文
posted @ 2011-03-03 15:08 lovewcl 阅读(505) 评论(0) 推荐(0)

摘要:共享内存的函数有以下几个:(1)int shmget(key_t key, int size, int shmflg),开辟或使用一块共享内存。(2)void *shmat(int shmid, const void *shmaddr, int shmflg), 将参数shmid所指向的共享内存与当前进程连接。当使用某共享内存时,需要先使用shmat,达成连接。(3)int shmdt(const void *shmaddr),将先前用shmat连接的共享内存与当前进程解除连接。参数shmaddr为shmat返回的共享内存的地址。在完成对共享内存的使用后,需要使用shmdt解除连接。(4)in 阅读全文
posted @ 2011-03-03 14:32 lovewcl 阅读(840) 评论(0) 推荐(0)