陆陆续续看完了圣经第一章,熟悉了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环境高级编程基础知识之第一篇的更多相关文章

  1. unix环境高级编程基础知识之第二篇(3)

    看了unix环境高级编程第三章,把代码也都自己敲了一遍,另主要讲解了一些IO函数,read/write/fseek/fcntl:这里主要是c函数,比较容易,看多了就熟悉了.对fcntl函数讲解比较到位 ...

  2. unix环境高级编程基础知识之第四章

    1.从当前用户转到root用户:直接输入su命令,然后输入root密码,如果之前没有设置root命令密码会登陆不成功,这里需要命令sudo passwd命令设置密码,然后按照上面输入就成:从root命 ...

  3. 《UNIX环境高级编程》(APUE) 笔记第一章 - UNIX基础知识

    1 - UNIX基础知识 Github 地址 1. 操作系统 可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.通常将这种软件称为 内核 (kernel) .( Linux 是 GN ...

  4. 【转】apue《UNIX环境高级编程第三版》第一章答案详解

    原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...

  5. Unix环境高级编程——守护进程记录总结(从基础到实现)

    一.概念及其特征 守护进程是系统中生存期较长的一种进程,常常在系统引导装入时启动,在系统关闭时终止,没有控制终端,在后台运行.守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程 ...

  6. Unix 环境高级编程

    UNIX 环境高级编程 本书描述了UNIX系统的程序设计接口--系统调用接口和标准C库提供的很多函数. 与大多数操作系统一样,Unix为程序员运行提供了大量的服务--打开文件,读文件,启动一个新程序, ...

  7. 《UNIX环境高级编程》(APUE) 笔记系列

    本系列笔记主要是对于 <UNIX环境高级编程>(APUE) 各章节内容 概念性的总结 ,不涉及代码解读 . 目录 : 第一章 UNIX基础知识 第二章 UNIX标准及实现 第三章 文件I/ ...

  8. (十三) [终篇] 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  9. (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

随机推荐

  1. GridView 和DataGrid区别

    转自:http://blog.csdn.net/51357/article/details/1480599 近期在维护一个vs2008开发的项目(该项目是从Vs2013拷贝升级过来的),发现不同时期按 ...

  2. ArrayList vs LinkedList vs Vector

    List概览 List,正如它的名字,表明其是有顺序的.当讨论List的时候,最好拿它跟Set作比较,Set中的元素是无序且唯一:下面是一张类层次结构图,从这张图中,我们可以大致了解java集合类的整 ...

  3. Linux使用汇总贴

    1. 服务开机启动 比如: update-rc.d ssh enable 2. 修改hostname [基于ubutun] hostname newname vi /etc/hostnamevi /e ...

  4. x01.BitmapHelper:图像处理

    “所有致我于死地的,也激发我胆魄”,姚贝娜的<心火>,是我近年来听过最好的歌,特此推荐一下. 图像处理,大概分三步:1.LockBits():2.进行处理:3.UnlockBits():这 ...

  5. ElasticSearch 日期赋值

    Nxlog date to elasticsearch     elasticsearch会自动检测日期类型,"2016-03-31 22:09:42"会当作字符串,"2 ...

  6. 配置nginx好了,html能打开,index.php打不开?

    启动这2个  #service nginx restart  # service php-fpm restart

  7. centos之开放80端口

    #/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT  #/sbin/iptables -I INPUT -p tcp --dport 22 -j ...

  8. Machine Learning Algorithms Study Notes(3)--Learning Theory

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...

  9. Jetty使用攻略

    jetty作为一款小型的web容器用处很大,因为其小巧强大,经常作为嵌入式的组件处理http交互. Jetty 作为一个独立的 Servlet 引擎可以独立提供 Web 服务,但是它也可以与其他 We ...

  10. 详细说说 Google Test Certified 的各级——Level 2,3

    转载请联系作者,谢谢!   No releases with red tests基于Level1搭建的持续集成,持续发布选用的CL(changelist)就可以取自CI系统最后跑通的CL,因为持续集成 ...