博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
小宝--读书笔记
精修内功!
zieckey.cublog.cn
管理博客
发表文章
留言
收藏夹
· 相关BLOG
· 好友BLOG
· 常去的地方
博客圈
音乐
相册
· 同学相片
· 西藏之行
· 我的大学
文章
· OS Linux
}
· Command Usage
· Install && Usage
· Soft Install && Usage
· Kernel
· Solaris
· Other
· C/C++
}
· Linux C/C++
· QT Embedded
· Standard C/C++
· Win32 C/C++
· E680
· Java
}
· J2ME
· J2SE
· J2EE
· Software Engineering
}
· Class Design Principle
· Arithmetic Data Structure
· Design Patterns
· Database
· Other
}
· Python
· Windows
· Networks
· Assemble
· Video && Image
· Hardware Design
· Other
· 人生如梦
}
· 修身养性
· 生活
· 音乐电影
· 职业生涯
· 搞笑
· 其它
首页
关于作者
思路决定出路,态度决定高度!
||
<<
>>
||
我的分类
文章列表 - Linux C/C++
Linux操作系统下的多线程编程详细解析(5) pthread_join
<br> <br>SYNOPSIS<br> #include <pthread.h><br><br> int pthread_join(pthread_t thread, void **rval_ptr);<br><br>DESCRIPTION<br> The pthread_join() function shall suspend execution of the calling thread until the target thread terminates, unless the target thread has already termi-nated. On return from a successful pthread_join() call with a non-NULL value_ptr a……
查看全文
发表于:2008-06-28 ┆
阅读(271)
┆
评论(0)
Linux操作系统下的多线程编程详细解析(4)
函数原型:<br><br> <br>#include <pthread.h><br>void pthread_cleanup_push(void (*rtn)(void *),void *arg);<br> 函数rtn是清理函数,arg是调用参数<br><br>void pthread_cleanup_pop(int execute);<br> <br><br> <br><br> 在前面讲过线程的终止方式,是正常终止还是非正常终止,都会存在一个资源释放的问题,在posix中提供了一组,就是我们上面看的函数进行线程退出的处理函数,有些像在进程中的atexit函数。释放的方式是指pthread_cleanup_push的调用……
查看全文
发表于:2008-06-28 ┆
阅读(256)
┆
评论(0)
C程序存储空间布局(二)—— 内存对齐(字节序对齐)
By zieckey (http://blog.chinaunix.net/u/16292/)<br><br>本文测试环境是Linux系统,FC7,gcc 版本 4.1.2 20070502<br><br>表示方式:<br> 内存地址 (H)字节内容(L) <br>0x0000 0000 B3B2 B1B0<br>0x0000 0004 B3B2 B1B0<br>0x0000 0008 ……
查看全文
发表于:2008-05-03 ┆
阅读(515)
┆
评论(0)
C程序存储空间布局(一)——各数据段的内存位置
<br>从历史上讲,C程序一直由下面几部分组成:<br><br>(1) 栈<br>由编译器自动分配释放管理。局部变量及每次函数调用时返回地址、以及调用者的环境信息(例如某些机器寄存器)都存放在栈中。新被调用的函数在栈上为其自动和临时变量分配存储空间。通过以这种方式使用栈,C函数可以递归调用。递归函数每次调用自身时,就使用一个新的栈帧,因此一个函数调用实例中的变量集不会影响另一个函数调用实例中的变量。<br> a.局部变量<br> b.函数调用时返回地址<br> c.调用者的环……
查看全文
发表于:2008-05-03 ┆
阅读(511)
┆
评论(0)
mmap函数用法及示例程序
UNIX网络编程第二卷进程间通信对mmap函数进行了说明。该函数主要用途有三个:<br>1、将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存读写取代I/O读写,以获得较高的性能;<br>2、将特殊文件进行匿名内存映射,可以为关联进程提供共享内存空间;<br>3、为无关联的进程提供共享内存空间,一般也是将一个普通文件映射到内存中。<br><br><br>头文件:<br> #include <sys/mman.h><br><br>函数:void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize);<br><br>……
查看全文
发表于:2008-05-01 ┆
阅读(526)
┆
评论(0)
ls命令的简单实现
本文给出了一个 ls 命令的简单C语言实现。<br><br /> <br /> <br />
查看全文
发表于:2007-12-25 ┆
阅读(796)
┆
评论(0)
Linux系统进程控制编程(十一)——有名管道(FIFO)相关概
2.1 有名管道相关的关键概念<br><br>管道应用的一个重大限制是它没有名字,因此,只能用于具有亲缘关系的进程间通信,在有名管道(named pipe或FIFO)提出后,该限制得到了克服。FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及FIFO的创建进程之间),因此,通过FIFO不相关的进程也能交换数据。值得注意的是,FIFO严格遵循先进先出(first in first out),对管道及……
查看全文
发表于:2007-10-01 ┆
阅读(1015)
┆
评论(0)
Linux系统进程控制编程(十)——mkfifo函数使用
mkfifo()会依参数pathname建立特殊的FIFO文件,该文件必须不存在,而参数mode为该文件的权限(mode%~umask),因此<br /> umask值也会影响到FIFO文件的权限。Mkfifo()建立的FIFO文件其他进程都可以用读写一般文件的方式存取。当使用open()来打开<br /> FIFO文件时,O_NONBLOCK旗标会有影响<br><br /> 1、当使用O_NONBLOCK 旗标时,打开FIFO 文件来读取的操作会立刻返回,但是若还没有其他进程打开FIFO 文件来读取,则写入的操作会返回ENXIO 错误代码。<br><br /> 2、没有使用O_NONBLOCK 旗标时,打开FIFO 来读取的操作会等到其他进程打开FIFO文件来写入才正常返回。同样地,打开FIFO文件来写入的操作会等到其他进程打开FIFO 文件来读取后才正常返回。<br><br /> 返回值<br /> <br /> <br />
查看全文
发表于:2007-10-01 ┆
阅读(1181)
┆
评论(0)
Linux系统进程控制编程(九)——pipe函数使用
<br /> pipe(建立管道)<br><br /> 表头文件 #include<unistd.h><br><br /> 定义函数 int pipe(int filedes[2]);<br><br /> 函数说明<br><br /> pipe()会建立管道,并将文件描述词由参数 filedes 数组返回。<br><br /> filedes[0]为管道里的读取端,所以pipe用read调用的<br><br /> filedes[1]则为管道的写入端。<br><br /> 返回值: 若成功则返回零,否则返回-1,错误原因存于 errno 中。<br><br><br /> <br /> <br /> <br /> <br />
查看全文
发表于:2007-10-01 ┆
阅读(1641)
┆
评论(1)
Linux系统进程控制编程(八)——管道相关概念
管道相关的关键概念<br> 管道是Linux支持的最初Unix IPC形式之一,具有以下特点:<br> * 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;<br> * 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);<br> * 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种……
查看全文
发表于:2007-10-01 ┆
阅读(860)
┆
评论(0)
Linux系统进程控制编程(七)——kill函数使用
kill(传送信号给指定的进程)<br>表头文件<br> #include<sys/types.h><br> #include<signal.h><br>定义函数 int kill(pid_t pid,int sig);<br>函数说明<br> kill()可以用来送参数 sig 指定的信号给参数 pid 指定的进程。参数 pid 有几种情况:<br> pid>0 将信号传给进程识别码为 pid 的进程。<br> pid=0 将信号传给和目前进程相同进程组的所有进程<br> pid……
查看全文
发表于:2007-10-01 ┆
阅读(1561)
┆
评论(0)
Linux系统进程控制编程(六)——wait和waitpid函数
wait()会暂时停止目前进程的执行,直到有信号来到或子进程结<br><br /> 束。如果在调用 wait()时子进程已经结束,则 wait()会立即返<br><br /> 回子进程结束状态值。子进程的结束状态值会由参数 status 返回,<br><br /> 而子进程的进程识别码也会一快返回。如果不在意结束状态值,则<br><br /> 参数 status 可以设成 NULL。 子进程的结束状态值请参考 waitpid( ) <br><br /> 如果执行成功则返回子进程识别码(PID) ,如果有错误发生则返回<br /> <br /> <br />
查看全文
发表于:2007-10-01 ┆
阅读(1942)
┆
评论(0)
Linux系统进程控制编程(五)——popen函数调用
摘要:本文介绍了popen函数的使用方法和行为机理,并给出实际的例子来辅助说明了popen函数的使用方法。<br>文件中还介绍了几个文件操作的函数,如fopen,fread,fwrite等<br><br /> <br /> <br />
查看全文
发表于:2007-09-30 ┆
阅读(1923)
┆
评论(0)
Linux系统进程控制编程(四)——system系统调用
system函数通过把system传递给/bin/sh -c 来执行 string 所指定的命令,string中可以包含选项和参数,<br><br /> 接着整个命令行(/bin/sh -c string)又传递给系统调用execve,如果没有找到/bin/sh,system返回127,<br><br /> 如果出现其他错误则返回-1,如果执行成功则返回string的代码。但是如果string为NULL,<br><br /> system返回一个非0值,否则返回0。<br /> <br /> <br />
查看全文
发表于:2007-09-30 ┆
阅读(1044)
┆
评论(0)
Linux系统进程控制编程(三)——exec函数族的使用
exec用被执行的程序完全替换调用它的程序的影像。fork创建一个新的进程就产生了一个新的PID,<br><br /> exec启动一个新程序,替换原有的进程,因此这个新的被exec执行的进程的PID不会改变,<br><br /> 和调用exec函数的进程一样。<br /> <br /> <br />
查看全文
发表于:2007-09-30 ┆
阅读(2220)
┆
评论(0)
Linux系统进程控制编程(二)——fork系统调用
<DIV> 进程由fock函数创建,在unistd.h库中定义如下:<BR> <BR> #include <unistd.h><BR> pid_t fock(void);<BR> <BR> fock函数调用一次却返回两次;向父进程返回子进程的ID,向子进程中返回0,<BR>这是因为父进程可能存在很多过子进程,所以必须通过这个返回的子进程ID来跟踪子进程,<BR>而子进程只有一个父进程,他的ID可以通过getppid取得。</DIV><br /> <DIV></DIV>
查看全文
发表于:2007-09-29 ┆
阅读(1039)
┆
评论(0)
Linux系统进程控制编程(一)————基本概念和函数getpid的使用
本文讲述了Linux系统下进程的基本概念,以及基本函数getpid的使用方法。 <br /> <br /> <br />
查看全文
发表于:2007-09-29 ┆
阅读(1181)
┆
评论(0)
基本IO函数的使用(mkstemp)(四)
本文详细讲解了mkstemp函数的详细用法,并给出来示例程序以供参考。<br /> <br /> <br />
查看全文
发表于:2007-09-29 ┆
阅读(1276)
┆
评论(1)
基本IO函数的使用(lseek)(三)
本文详细介绍了lseek函数的用法,并给出了示例程序。<br /> <br /> <br />
查看全文
发表于:2007-09-29 ┆
阅读(2056)
┆
评论(6)
出错处理之四——abort_exit_atexit_strerror函数的使用
摘要:本文详细讲述了几个出错处理的函数abort、exit、atexit、strerror函数的使用方法,并给出来具体的示例程序。<br /> <br /> <br />
查看全文
发表于:2007-09-27 ┆
阅读(794)
┆
评论(0)