摘要: 一、半双工管道(pipe) 关于管道详细介绍可参考http://www.cnblogs.com/nufangrensheng/p/3560130.html。 1、管道实现父子进程间通信实例: /* pipe.c */#include #include #include #include #include #include #define MAXLINE 1024int main(v... 阅读全文
posted @ 2014-03-03 22:27 ITtecman 阅读(2759) 评论(0) 推荐(0) 编辑
摘要: 1、fork()方式 fork()函数以父进程为蓝本复制一个进程,其ID号与父进程ID号不同。在Linux环境下,fork()是以写复制实现的,只有内存等与父进程不同,其他与父进程共享,只有在父进程或者子进程进行了修改后,才重新生成一份。 2、system()方式 system()函数调用”/bin/sh –c command“执行特定的命令(可参考http://www.cnblog... 阅读全文
posted @ 2014-03-03 21:53 ITtecman 阅读(2573) 评论(0) 推荐(0) 编辑
摘要: 程序是指令的集合。 进程是运行着的程序。操作系统分配资源的基本单位。 线程是为了节省资源而可以在同一个进程中共享资源的一个执行单位。 阅读全文
posted @ 2014-03-03 21:27 ITtecman 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 打开、创建文件: 关闭文件: 读取文件: 写文件: 设定文件偏移量: 获取文件状态: 文件空间映射: 获取和改变已打开文件的属性: 文件输入输出控制: 阅读全文
posted @ 2014-03-03 21:20 ITtecman 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2014-03-03 20:42 ITtecman 阅读(151) 评论(0) 推荐(0) 编辑
摘要: Linux的文件系统是由虚拟文件系统作为媒介搭建起来的,虚拟文件系统VFS(Virtual File System)是Linux内核层实现的一种架构,为用户空间提供统一的文件操作接口。它在内核内部为不同的真实文件系统提供一致的抽象接口。 如下图所示:用户应用程序通过系统调用,与内核中的虚拟文件系统交互,操作实际的文件系统和设备。 阅读全文
posted @ 2014-03-03 20:32 ITtecman 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 设备文件是通过mknod命令来创建的。其命令格式为: mknod [OPTION]... NAME TYPE [MAJOR MINOR]TYPE取值:主设备号和次设备号两个参数合并成一个16位的无符号短整形,高8位表示主设备号,低8位表示次设备号。一个设备文件通常与一个硬件设备相关联,或者与硬件设备的某一物理或逻辑分区相关联。但在某些情况下设备文件不会和任何实际的硬... 阅读全文
posted @ 2014-03-03 20:11 ITtecman 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 上图中,红色方块内为设备的主设备号,黄色方块内为设备的次设备号。 主设备号是表示系统存取这个设备的“内核驱动”。驱动程序是UNIX系统内核代码中的一部分,其作用是用来控制一种特殊设备的输入输出。大多数的UNIX系统都有多种设备驱动程序,每一个设备文件名中的主设备号就代表这个设备使用的是哪个设备驱动程序。 次设备号:每一个设备文件都有一个次设备号。“次设备号”是一个24位的十六进制数字,其定... 阅读全文
posted @ 2014-03-03 19:39 ITtecman 阅读(1244) 评论(0) 推荐(0) 编辑
摘要: 在Linux的文件系统中,索引节点是文件的标识,并且这个值是唯一的,两个不同的文件的索引节点值是不同的,索引节点相同的文件它们的内容是相同的,仅仅文件名不同。修改两个索引节点值相同的文件中的一个文件,另一个文件的内容也跟着发生变化。 索引节点值相同的文件,二者的关系是互为硬链接。当修改其中一个文件的内容时,互为硬链接的文件内容也会随着变化。如果删除互为硬链接关系的某个文件时,其他文件并不受影响。 阅读全文
posted @ 2014-03-03 19:24 ITtecman 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 静态链接库 前言静态库是obj文件的一个集合(目标文件中通常仅解析了文件内部的变量和函数,对于引用的函数和变量还没有解析,这需要将其他已经编写好的目标文件引用进来,将没有解析的函数和变量进行解析,通常引用的目标是库),通常静态库以".a"为后缀,名字格式一般为libxxx.a。静态库由程序ar生成。实例程序如下:Main.c #include extern void print_hello();intmain(void){print_hello();}Print_hello.c #include voidprint_hello(){printf("hello\n& 阅读全文
posted @ 2014-03-03 17:21 ITtecman 阅读(16452) 评论(2) 推荐(3) 编辑
摘要: 各种平台打开伪终端设备的方法有所不同。在Single UNIX Specification的XSI扩展中包含了很多函数,试图统一这些方法。这些函数的基础是SVR4用于管理基于STREAMS的伪终端的一组函数。posix_openpt用来打开下一个可用的伪终端主设备,该函数是可移植的。#include #include int posix_openpt(int oflag);返回值:若成功则返回下... 阅读全文
posted @ 2014-03-03 11:21 ITtecman 阅读(2050) 评论(0) 推荐(0) 编辑
摘要: 引言在终端和运行的程序之间有一个终端行规程(见http://www.cnblogs.com/nufangrensheng/p/3575752.html中的图18-2),通过它我们能够在终端上设置特殊字符(退格、行删除、中断等)。但是,当一个登陆请求到达网络连接时,终端行规程并不是自动被加载到网络连接和登陆程序shell之间的。概述伪终端这个术语暗示对于一个应用程序而言,它看上去像一个终端,但事实上... 阅读全文
posted @ 2014-03-03 10:27 ITtecman 阅读(1254) 评论(0) 推荐(0) 编辑