高级UNIX环境编程
常规文件 只有索引节号(i-number,是一批i-node的索引),i-node不含文件名及数据字节,包括文件类型,链接数量,uid,gid,访问权限,字节数,最后访问时间,最后修改时间,信息节点最后修改时间,文件内容磁盘块指针
目录:使用名称来标识文件,实际中总是用目录来访问文件,每个目录包含一个两列表,一列是文件名称,一列是索引节号,名称/信息节点对被称为链接(link)
块特殊文件:包含固定长度块的数组,并使用内核缓冲区池加速IO操作
字符特殊文件:不适合使用缓冲区,块大小不定
程序运行环境:1 指令段(文本段),用户数据段,系统数据段
进程 组成 进成组(任务job) 组成 会话
每个进程都有4个相关的进程ID号:进程ID,父进程ID,进程组ID,会话领导者ID
进程间通信:
共享文件偏移,
信号,
进程跟踪(主要调试器使用),
文件(最常见一个写一个读),
管道(解决了文件的同步问题,3缺点:通信的进程必须是相关的,无法保证超过本地设置最大值的写入原子性,可能会变慢[数据写入内核再复制到读进程])==》
命名管道:解决管道第一个问题,
信号量:防止两个或多个进程在同一时间访问同一资源的计数器,使用空文件
文件锁:一种具有特殊目的的信号量,可以防止两个及两个以上的进程访问文件的同一部分(建议锁,强制锁)
消息:可发发送到信息队列的少量数据
共享存储器:最快的进程间通信,可将同一存储器映射到多个进程地址空间。
socket(11种)
高级UNIX环境编程的更多相关文章
- 高级UNIX环境编程7 进程
每个程序都会收到一张环境表 extern char **environ; c程序的存储空间布局: 正文段:共享,只读 初始化数据段:存函数以外的赋值 非初始化数据段(bbs):block starte ...
- 高级UNIX环境编程5 标准IO库
标准IO库都围绕流进进行的 <stdio.h><wchar.h> memccpy 一般用汇编写的 ftell/fseek/ftello/fseeko/fgetpos/fsetp ...
- 高级UNIX环境编程13 守护进程
linux下,keventd守护进程为内核中运行的执行的函数提供进程上下文 bdflush,kupdated将高速缓存中的数据冲洗到磁盘上
- 高级UNIX环境编程11 线程
<pthread.h> pthread_equal pthread_self(void) pthread_create() pthread_close() pthread_join() p ...
- 高级UNIX环境编程10 信号
信号是软件中断,提供一种处理异步事件的方法 <signal.h> sigaction()
- 高级UNIX环境编程4 文件和目录
#include<sys/stat.h> stat fstat lstat fchmod 对已打开的文件操作
- 高级UNIX环境编程3 FILE IO
POSIX中,STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO 对应0,1,2 每个打开的文件都有一个与其想关联的 "current file offset& ...
- 高级UNIX环境编程2
perror("error:") ; strerror 日历时间:time_t (1970.1.1开始的秒数) struct timeval (秒数和微秒) struc ...
- UNIX环境编程学习——反思认识
学习情况: 有关UNIX系统环境编程的学习时间用来非常长的时间.可是感觉效果还是不是太好,在中间经过了期末考试.用来非常长的时间用来学习专业课.就将该过程的学习放到了一边上,放假以后又回家造成了 ...
随机推荐
- windows平台发消息到非UI线程.
下面的代码是介绍如何在windows平台发消息到非UI线程. 主要是'PeekMessage || GetMessage' 这两个API的应用. 当他们被调用的时候,如果当前线程还没有消息循环,就会创 ...
- Eclipse、MyEclipse优化,提高运行速度
MyEclipse 是公认的优秀的软件开发工具,使用非常广泛.相信很多人在使用的过程中,发现其运行速度比较慢,因为每次操作的背后,它调用了很多的命令,执行了很多操作:但是其中大部分的操作都是非必须的: ...
- HDU1506 ( Largest Rectangle in a Histogram ) [dp]
近期情绪太不稳定了.可能是由于在找实习这个过程碰壁了吧.第一次面试就跪了,可能是我面的是一个新公司,制度不完好,我感觉整个面试过程全然不沾编程,我面试的还是软件开发-后来我同学面试的时候.说是有一道数 ...
- Boost源代码学习---shared_ptr.hpp
最近观看Boost库源代码.Boost功能强大的库,但它的许多源代码,十一细读太费时间,毕竟,还有其他东西要学.所以我决定脱脂感兴趣的章节,他们的设计思路和难以理解的地方记录. shared_ptr是 ...
- HDU1046:Gridland
Problem Description For years, computer scientists have been trying to find efficient solutions to d ...
- ubuntu之iptables
1.更新iptables并立即生效: a.保存当前设置:iptables-save > /etc/iptables.up.rules b.修改iptables规则: 例如: -I INPUT - ...
- java中对象模型与数据库中的关系模型
实体类还需要配置到hibernate.cfg.xml中,以便Hibernate初始化实体类与数据库表的映射关系.如果只配置了映射关系,而没有配置到hibernate.cfg.xml中,Hibernat ...
- 梳理下phpmyadmin改root密码后登录不上的问题。
一, 登陆phpmyadmin,然后点击左侧进入mysql数据库,在顶部点击“mysql”进入sql输入界面.输入以下命令: update user set password=password('12 ...
- poj 3185 The Water Bowls 高斯消元枚举变元
题目链接 给一行0 1 的数, 翻转一个就会使他以及它左右两边的都变, 求最少多少次可以变成全0. 模板题. #include <iostream> #include <vector ...
- mybatis一对一关联表查询
先创建一个表 CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name ) ); CREATE TABLE class( c_ ...