Linux/Unix
文章平均质量分 78
海world
青蛙
展开
-
linux/unix锁
[size=medium][b]锁定中的几个概念[/b][/size] 文件锁定的是整个文件,而记录锁定只锁定文件的某一特定部分。UNIX 的记录指的是从文件的某一相对位置开始的一段连续的字节流,它不同于其它以强制性记录结构阻止文件的操作系统,因此,UNIX 记录锁更恰当的称呼应该是范围锁,它是对文件某个范围的锁定。 文件和记录锁定可分为咨询式锁定和强制锁定两种。当正在...原创 2009-10-07 19:54:24 · 179 阅读 · 0 评论 -
文件I/O
本文将对UNIX系统的文件I/O的以下几点作出总结:[list][*]文件描述符[*]open()函数[*]read()函数[*]write()函数[*]lseek()函数[*]close()函数[/list][b]术语——不带缓存指的是每个 read和write都调用内核中的一个系统调用。[/b][b]文件描述符[/b]对于内核而言,所有打开文件都...原创 2009-08-13 02:06:23 · 98 阅读 · 0 评论 -
进程间通信——管道
[size=medium][b]1.匿名管道[/b][/size]匿名管道创建的四种方法[list][*]使用pipe()函数[*]使用dup()函数[*]使用dup2()函数[*]使用popen()/pclose()函数[/list][b]dup()函数[/b]有时候我们需要将子进程当中的管道的句柄定向到标准 I/O(stdin/stdout)上去。这样,...原创 2009-08-13 00:02:30 · 105 阅读 · 0 评论 -
进程间通信——系统调用setjmp()与longjmp()
[b]系统调用setjmp()和 longjmp()[/b]有时候,当接收到一个信号时,希望能跳回程序中以前的一个位置执行。例如,在有的程序内,当用户按了中断键,则程序跳回到显示主菜单执行。我们可以用库系统调用setjmp()和 longjmp()来完成这项工作。setjmp()能保存程序中的当前位置(是通过保存堆栈环境实现的),longjmp()能把控制转回到被保存的位置。在某种意义上,lo...原创 2009-08-10 23:05:36 · 188 阅读 · 0 评论 -
进程间通信——信号
信号类型信号类型在[url=http://tomotoboy.iteye.com/admin/blogs/438130]Trap命令详解[/url]中有详细的介绍[b]信号捕捉[/b]示列程序实现对SIGINT的捕捉[code="c"]#include #include #include int catch(int sig);int main(void){...原创 2009-08-10 13:21:33 · 179 阅读 · 0 评论 -
进程控制——进程环境
[size=medium][b]进程环境[/b][/size]进程的环境是一个以 NULL 字符结尾的字符串之集合。在程序中可以用一个以 NULL结尾的字符型指针数组来表示它。系统规定,环境中每个字符串形式如下:[code="shell"]name=somethin[/code]Linux 系统提供了 environ 指针,通过它我们可以在程序中访问其环境内容。在使用 environ ...原创 2009-08-09 14:49:49 · 103 阅读 · 0 评论 -
gcc编译器入门
Gcc编译流程:[list][*]预处理(Pre-Processing);[*]编译(Compiling);[*]汇编(Assembling);[*]链接(Linking);[/list]以intime.c为例讲解:[code="c"]#include #include #include #include #include #define PRO...2009-08-07 18:51:21 · 136 阅读 · 0 评论 -
Makefile文件的制作
当我们有很多C源文件的时候,我们每次运行都要对其编译、链接……运行,这一步步的操作着实费时又费力,有不有更好的方法来为我们服务呢?我们知道ant可以用来构建java应用程序,通用我们也有make来为C服务。类似于build.xml,在make读入的唯一的配置文件是Makefile,本文讲述Makefile的编写过程。首先然我们来看一个具体的Makefile文件是怎么构建的:目录下有两个文件...2009-08-07 15:29:31 · 103 阅读 · 0 评论 -
unix下第一个C程序
首先我们的目录下有两个C程序,功能很简单就是求一个整数的阶乘[code="shell"]/home/l/g/tomotoboy/c >lsfactorial.c main.c[/code]factorial.c[code="c"]int factorial(int n){ if(ngcc -c main.c factorial.c/home/l/g/tomotob...2009-08-07 14:53:53 · 80 阅读 · 0 评论 -
UNIX 进程揭秘——探索运行在 UNIX 操作系统下的进程的生命周期
原文地址:http://www.ibm.com/developerworks/cn/aix/library/au-unixprocess.html2007 年 7 月 16 日研究进程的生命周期,以便您能将所看到的系统上发生的事情与内核中发生的事情联系起来。系统管理员必须知道 UNIX® 环境中的进程是如何创建和销毁的,以便了解系统是如何组合起来的,以及如何管理行为异常的进程。类似地,...原创 2009-08-03 10:40:56 · 122 阅读 · 0 评论 -
unix进程(初识)
原文地址:http://blog.chinaunix.net/u/12783/showart_722257.html前面讲到了进程的上下文以及如何管理/操作进程的地址空间,其中,里面提到了一些调用。这些调用与下文有一定的关联,在此列出: fork():调用dupreg(),attachreg()exec():调用detachreg(),allocreg(),attachreg(),...原创 2009-07-28 17:24:55 · 121 阅读 · 0 评论 -
linux进程
原文地址:[url]http://it.china-b.com/linux/xtgl/20090525/19807_1.html[/url][b]4.1Linux进程 [/b] 为了让Linux来管理系统中的进程,每个进程用一个task_struct数据结构来表示(任务与进程在Linux中可以混用)。数组task包含指向系统中所有task_struct结构的指针。这意味着系统中的最大进...原创 2009-07-28 16:49:35 · 160 阅读 · 0 评论 -
Berkeley套接字的一些基本知识
一、首先看一下Berkeley Socket实现TCP和UDP协议的流程1.面向连接的TCP[align=center][img]http://dl.iteye.com/upload/attachment/160430/d016d948-ff9b-3c51-8dd5-fbf138489b27.jpg[/img][/align]2.无连接的UDP[align=center][im...原创 2009-10-25 00:46:22 · 649 阅读 · 0 评论 -
进程间通信——共享内存
共享内存(Shared Memory)共享内存,简单的说就是被多个进程共享的内存。它在各种进程通信方法中是最快的,因为它是将信息直接映射到内存中,省去了其它 IPC方法的中间步骤。1.shmid_ds共享内存也有一个给系统内存用来保存相关信息的机构,就是shmid_ds。[code="c"]struct shmid_ds{struct ipc_perm shm_perm...原创 2009-10-18 15:02:56 · 350 阅读 · 0 评论 -
进程间通信——信号量
有关结构体1.sem[code="c"]struct sem { short sempid; /* pid of last operation */ ushort semval; /* current value */ ushort semncnt...原创 2009-10-16 15:35:18 · 198 阅读 · 0 评论 -
进程间通信——消息队列
原文地址:[url]http://hi.baidu.com/monalisa88188/blog/item/f5c52122e42ff84dac34de74.html[/url][b][size=medium]一、消息队列的基本概念[/size][/b] 消息队列是一个存放在内核中的消息链表,每个消息队列由消息队列标识符标识。与管道不同的是消息队列存放在内核中,只有在内核重启(即操作...原创 2009-10-08 21:41:36 · 142 阅读 · 0 评论 -
文件共享
UNIX支持在不同进程间共享打开文件,本文主要对以下几个方面简单介绍:[list][*]原子操作;[*]再次介绍dup与dup2;[*]fcntl函数;[*]ioctl函数;[*]/dev/fd;[/list][size=medium][b]1.介绍一下内核用于所有I/O的数据结构[/b][/size]内核使用了三种数据结构,它们之间的关系决定了在文件共享方面一...原创 2009-08-14 14:58:29 · 165 阅读 · 0 评论