- 博客(7)
- 收藏
- 关注
原创 sem_open 和 errno的使用问题
<br />使用共享库,遇到一个sem_open的问题。<br /> <br />当时的写法是:<br />sem_open( pSemName, O_CREATE | O_RDWT);<br />编译通过,但程序执行到此时,就崩了。<br />后来查看errno后,得到是参数错误。<br />因为是在写入函数中,打开信号量。<br />所以,正确的写法应该是<br /> <br />sem_open(pSemName, O_RDWT);<br /> <br />应该区分创建和打开。
2010-09-29 10:39:00
2297
原创 2010.9.27 Solaris下date用法
<br />1。修改系统时间<br />首先要是root权限才行<br />修改方法:<br />date [月][日][小时][分钟][年份]<br />date 092712132010<br />
2010-09-27 12:13:00
870
原创 2010.9.13
<br />2010.9.13<br />1.老生常谈的问题了,但必须再次强调!!!:函数中,任何形式返回前,必须检查该释放的内存空间是否被释放。特别是new、molloc,已经fopen、信号量、互斥锁等。(今天我就范了个错误,molloc忘记free了。-。-)<br /> <br />2.原型:extern void bzero(void *s, int n); <br /> 用法:#include <string.h><br /> 功能:将指针s的前n位置零。<br />和memset(void*
2010-09-13 19:17:00
424
原创 【转】 Unix、Linux 多线程编程
Linux下的多线程编程本文出自:http://www.china-pub.com 作者: 姚继锋 (2001-08-11 09:05:00)1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,
2010-09-10 16:13:00
455
原创 信号量编程心得 共享内存增加、减小心得 2010.9.10
2010.9.101.信号量(Semaphore)是一个防止共享内存被多个进程或者同一进程的多个线程同时读、写而设置的一个信号开关。功能类似,停车场。比如有3个车位同时有五辆汽车准备停靠。信号量就像停车场的管理员,当他发现三个车位满员后,就会落下栏杆。让后面的汽车等待,而非进入停车场停靠。2.sem_t *sem_open(const char *name, int oflag,/* unsigned long mode, unsigned int value */); name:信号量名称
2010-09-10 15:24:00
596
原创 Solaris下守护进程编码 2010.9.8
<br />2010.9.8<br />1.Unix命令查看进程——ps;<br /><br />2.任何项目做完后,都要对结果进行校验。然后再发布<br /><br />3.进程A调用int pid=fork()之后,实际上是克隆出来一个子进程B。<br />进程A是进程B的父进程;进程B是进程A的子进程。<br />进程B与进程A在堆栈、环境、状态方面在fork的时候是一样的。<br />在进程A即父进程fork()的返回值非0,返回的是子进程的pid;在进程B即子进程fork()返回的是0。根据返回值
2010-09-09 17:26:00
430
原创 Unix下共享内存机制 unsigned short 与 char 互相转换 GCC编译共享内存
2010.9.91.使用GCC在Solaris编译共享内存函数时,需要加上-lrt。否则,系统将无法引入头文件,而导致编译报错。2比如把short i;的高八位给char c;c=(i>>8)&0xFF;低八位给char d的话: d=i&0xFF;你要能把所有数据存储在内存的情况都相通就OK了..对于内存来说没有什么char ,int ,short之分..我就和你讲一个取高位的情况吧.i=0x5F43;//高八位是5Fi>>8;//i右移八位结果是0x005Fc=(i>>8)&0xFF;//因为C是八位的
2010-09-09 17:02:00
1038
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人