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 环境高级编 ...
随机推荐
- SQL Server:服务器角色
角色 描述 sysadmin 执行SQL Server中的任何动作 serveradmin 配置服务器设置 setupadmin 安装复制和管理扩展过程 securityadmin 管理登录和CREA ...
- 编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc。
package zuoye; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...
- Linux IPC socket编程基础
头文件 #include<unistd.h> #include <sys/types.h> #include <sys/socket.h> #include< ...
- 关于SUID、SGID、Sticky
SUID属性 passwd命令可以用于更改用户的密码,一般用户可以使用这个命令修改自己的密码.但是保存用户密码的/etc/shadow文件的权限是400,也就是说只有文件的所有者root用户可以写入, ...
- php模拟飞鸽传输协议,代码实现向飞鸽发送消息
飞鸽传书协议:1:23149:riverlet:127.0.0.1:\x20:balabalabalabala版本号:包编号:发送者姓名:发送者主机名:命令字:附加信息(消息内容) <?php ...
- 奇 arch/i386/kernel/head.o(.text+0x3e): undefined reference to `stack_start'
当linux/linkage.h 是dos格式保存,即以\r\n作行结束,gcc-2.96/redhat-7.3报错
- How to create and apply a patch with Git
Creating a patch file with git is quite easy to do, you just need to see how it’s done a few times. ...
- 大话设计模式C++版——工厂方法模式
工厂方法模式是以简单工厂模式为基础的,如果未了解简单工厂模式的同学可先浏览<大话设计模式C++版——简单工厂模式>.在简单工厂模式中,提到过简单工厂模式的缺陷,即违背了开发—封闭原则,其主 ...
- HTML标签----图文详解(二)
HTML标签超详细的图文演示再来一波~~~ 如果还没有看过昨天的福利的,那可要抓紧喽,传送门:HTML标签----图文详解 本文主要内容 列表标签 表格标签 框架标签及内嵌框架<iframe&g ...
- java 解决中文乱码
//1.代码解决 public class LuanMa { public static String getNewString(String luanma){ String result = &qu ...