unix环境高级编程基础知识之第一篇
陆陆续续看完了圣经第一章,熟悉了unix的整个编程流程,c语言的用处在这里得到伸张。
从unix的体系结构,原来操作系统包括内核及一些其他软件,我们常常误称为linux内核为操作系统,这俨然成为一种共识。基本熟悉了shell的介绍,主流的是bash(Bourne-again shell),unix的文件的基本操作,出错处理,用户ID,信号(感觉类似windows的消息),时间值,最后还有系统调用和库函数的区别。
看到园友整理过,这里共享一下,不再另敲:
1. 创建新目录时会自动创建两个文件名 . 和 .. ; .指当前目录, ..指父目录,目录的起点是跟root,名字为一个字符/
2. 所有Linux系统都提供GNU shell ,即Bourne-again shell遵循POSIX标准并与Bourne shell兼容,/bin/sh将链接到/bin/bash
3. 列出一个目录中所有文件的名字 ls , ll, getuid getgid返回用户ID和组Id
4. 当前目录为工作目录,登录时起始为/home/hubo
5. 每当运行一个新程序时,所有的shell都为其打开三个文件描述符:标准输入,标准输出,错误输出
如果运行 ll > file.list 会打开该文件,返回一个文件描述符
6. 函数open 、 read、write、lseek以及close提供不用缓冲的I/O,这些函数都使用文件描述符,而标准I/O函数提供带缓冲的接口如printf, fgets函数读取完整的行,而read函数读指定字节数。
7. 程序是存放在磁盘上,处于某个目录中的一个可执行文件,使用6个exec函数中一个由内核将程序读入内存,使其执行。 程序的执行示例是进程,唯一数字标识符,进行ID(process ID)总是一非负整数。getpid()得到进程ID 三个用于进程控制的函数fork、exec、waitpid
8. 在一个进程内所有线程共享同一地址空间,文件描述符,栈已经进程属性。因为它们能访问同一存储区,所以各线程在访问共享数据时需要采用同步措施避免不一致,在一个进程中对多个线程操作,用线程ID引用相应线程。线程模型,控制线程的函数。
9. 信号signal 是通知进程已发生某种情况,进程如何处理信号,可以提供一个函数,信号发生时调用该函数。 用signal函数指定当产生SIGINT信号时要调用的函数名sig_int
10. 文件I/O,open、read、write、lseek、已经close 不带缓冲的io,每个read和write都调用内核的一个系统调用。只要涉及在多个进程间共享资源,原子操作概念很重要。对于内核而言,所有打开的文件都通过文件描述符引用(内核向进程返回文件描述符)Unix系统shell使用文件描述符0与进程标准输入关联,文件描述符1与进程标准输出,文件描述符2与进程错误输出。
自己把这篇的所有代码用vim的敲完了,主要前期是熟悉unix的基本命令编程,大致了解编程流程。但是这篇主要是熟悉unix的大体框架,后期每篇会对这些内容专门介绍,共勉!
unix环境高级编程基础知识之第一篇的更多相关文章
- unix环境高级编程基础知识之第二篇(3)
看了unix环境高级编程第三章,把代码也都自己敲了一遍,另主要讲解了一些IO函数,read/write/fseek/fcntl:这里主要是c函数,比较容易,看多了就熟悉了.对fcntl函数讲解比较到位 ...
- unix环境高级编程基础知识之第四章
1.从当前用户转到root用户:直接输入su命令,然后输入root密码,如果之前没有设置root命令密码会登陆不成功,这里需要命令sudo passwd命令设置密码,然后按照上面输入就成:从root命 ...
- 《UNIX环境高级编程》(APUE) 笔记第一章 - UNIX基础知识
1 - UNIX基础知识 Github 地址 1. 操作系统 可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.通常将这种软件称为 内核 (kernel) .( Linux 是 GN ...
- 【转】apue《UNIX环境高级编程第三版》第一章答案详解
原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...
- Unix环境高级编程——守护进程记录总结(从基础到实现)
一.概念及其特征 守护进程是系统中生存期较长的一种进程,常常在系统引导装入时启动,在系统关闭时终止,没有控制终端,在后台运行.守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程 ...
- Unix 环境高级编程
UNIX 环境高级编程 本书描述了UNIX系统的程序设计接口--系统调用接口和标准C库提供的很多函数. 与大多数操作系统一样,Unix为程序员运行提供了大量的服务--打开文件,读文件,启动一个新程序, ...
- 《UNIX环境高级编程》(APUE) 笔记系列
本系列笔记主要是对于 <UNIX环境高级编程>(APUE) 各章节内容 概念性的总结 ,不涉及代码解读 . 目录 : 第一章 UNIX基础知识 第二章 UNIX标准及实现 第三章 文件I/ ...
- (十三) [终篇] 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
随机推荐
- OSGI入门笔记
OSGI框架为Java定义了一个动态模块化系统,它使你可以更好地控制代码结构,动态管理代码的生命周期,并且提供了代码写作的松耦合方式:更值得称道的是,它的规范文档描述详尽.--<OSGI实战&g ...
- 用了星型转换的sql跑了5小时--->5mins的过程
=================START================================ BI数据仓库环境里面跑着一个crontab job,一旦sql运行超过4hours,就会接 ...
- iOS 读取相册二维码,兼容ios7(使用CIDetector 和 ZXingObjC)
ios从相册读取二维码,在ios8以上,苹果提供了自带的识别图片二维码的功能,这种方式效率最好,也是最推荐的,但是如果你的系统需要向下兼容ios7,就必须用其他方式. 这里我选择的是 ZXingObj ...
- MYSQL:使用\G参数改变输出结果集的显示方式
在mysql命令行工具中执行查询时,当表的列很多的时候显示很乱. 上面的显示你肯定看不清楚吧.以上方式是默认以列(表格)形式显示的.那怎么以行(表单)的方式显示呢,请看下面 OK,搞定. 参考文档:h ...
- 双核CPU,跑程序会报rcu_sched_state detected stalls on CPUs/tasks 错误
有一份SDK,之前跑在PPC405EX上没问题。最近换平台,CPU使用了PowerPC的P1020,双核。linux版本也升级到了3.0.48版本。升级之后出现了一个问题:SDK里面的程序跑一段时间之 ...
- JavaScript添加、查找、删除元素的一个实例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 《100种过度医疗大公开》:转译自日文版,日文版依据的是美国的“Choosing Wisely”项目。三星推荐
本书转译自日文,日文版则是在美国的“Choosing Wisely”项目中选择了100个相对常见的过度医疗项目做解说.Choosing Wisely项目,是由美国多个专业医学组织发起的列出过度医疗项目 ...
- [转]Hide or Remove jquery ui tab based on condition
本文转自:http://stackoverflow.com/questions/19132970/hide-or-remove-jquery-ui-tab-based-on-condition 问: ...
- 150925-周五不干活-HTML(CSS),Javascript
不干活就干自己.. 今天所有代码总结为一个如下 <!DOCTYPE HTML><html><head><meta http-equiv="Conte ...
- 扩展欧几里德算法 cogs.tk 2057. [ZLXOI2015]殉国
2057. [ZLXOI2015]殉国 ★☆ 输入文件:BlackHawk.in 输出文件:BlackHawk.out 评测插件时间限制:0.05 s 内存限制:256 MB [题目描 ...