unix环境高级编程笔记

第一章

  • 系统调用和库函数,应用程序既可以调用系统调用也可以调用库函数,很多库函数则会调用系统调用。系统调用通常提供一种最小接口,而库函数通常提供比较复杂的功能。

    注意区别不带缓冲的IO和标准IO,标准IO函数提供了一个带缓冲的接口,使用标准IO函数无需担心如何选取最佳的缓冲区大小。

    第二章 UNIX标准及实现

  • 本章主要介绍了UNIX的标准。知道ISO c从c99到c11的转变就行了。linux、macos、aix等这些都属于unix的分支。当然这其中就要有各种复杂的兼容性的问题了。

    第三章 文件I/O

  • 理解文件描述符
    当打开一个现有文件或者创建一个新文件时候,内核向进程返回一个文件描述符,按照惯例,UNIX系统shell把文件描述符0与进程的标准输入关联,文件描述符1与标准输出关联,文件描述符2与标准错误惯例。
  • 理解当前文件偏移量 lseek
  • 学会使用linux的od命令 od - dump files in octal and other formats
    还要理解磁盘块
    ~暂时还不太理解~
  • 文件共享
    unix支持在不同进程间共享打开文件

    第四章 文件和目录

  • unix文件类型有以下几种
  • 1.普通文件
  • 2.目录文件
  • 3.块特殊文件
  • 4.字符特殊文件
  • 5.FIFO
  • 6.套接字
  • 7.符号链接

    第五章 标准IO库

  • 对一个进程预定义了3个流,并且这三个流可以自动地被进程使用,他们是:标准输入、标准输出和标准错误,这三个标准IO流通过预定义文件指针stdin/stdout和stderro加以引用,这三个
    文件指针定义在头文件中。

    第六章 系统数据文件和信息

  • 研究一下linux和windows下密码破解的原理,包括mimikatz和jhon the ripper工具的原理

    第七章 进程环境

  • c程序一直有以下几部分组成:
    1.正文段
    2.初始化数据段
    3.未初始化数据段
    4.栈
    5.堆

    感想

  • 研究原理unix权限的原理,可以使用c语言编写一个类似chmod的命令,对unix的权限问题就有一个比较深入的理解了。
  • 其实研究unix底层相关的东西还是挺有意思的一件事情

    Referencd

  • http://www.cnblogs.com/52php/p/5681701.html
  • http://www.swanlinux.net/categories/%E3%80%8Aunix%20%E9%AB%98%E7%BA%A7%E7%BC%96%E7%A8%8B%E3%80%8B-Note/