基本概念:
BSD(Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统
970年代由伯克利加州大学(University of California, Berkeley)开创。BSD用来代表由此派生出的各种套件集合。
DIR* opendir(char *)
struct dirent * readdir(DIR*)
fig3_2.c:create,write,lseek
fig3_4.c:read,write
某些系统提供路径名
/dev/stdin,/dev/stdout,/dev/stderr
这些等效于
/dev/fd/0,/dev/fd/1,/dev/fd/2
四。
stat、fstat 和lstat 函数
S_ISREG() 普通文件
S_ISDIR() 目录文件
S_ISCHR() 字符特殊文件
S_ISBLK() 块特殊文件
S_ISFIFO() 管道或FIFO
S_ISLNK() 符号连接( POSIX.1或SVR4无此类型)
S_ISSOCK() 套接字(POSIX.1或SVR4无此类型)
七。int main(int argc,char *argv[])
进程终止:main返回,exit(),_exit(),abort(),信号终止
_exit立即进入内核, exit则先执行一些清除处理
(包括调用执行各终止处理程序,关闭所有标准I / O流等),然后进入内核(exit会结束其他进程),比如会调用fclose关闭流
atexit()和exit()合用,exit()时,在程序终止前线执行所有用atexit()登记的函数,用atexit()登记的函数按照FIFO(先进后出)顺序调用
atexit
getenv
putenv
environ指针
共享库
存储空间布局:
只读正文段
初始化数据段
非初始化数据段
栈 递归
堆 废除实话市局顶何栈底之间
存储器分配:
malloc 指定字节数
calloc 指定个数
realloc 更改分配去长度,可能移动区域
free
alloca 调用序列与 m a l l o c相同,但是它是在当前函数的栈帧上分配存储空间,而不是在堆中,函数返回时,自动释放它所使用的栈帧(某写系统不支持)
7.9 环境变量
char *getenv(const char *name);
getenv
putenv
setnev
unsetenv
clearenv
7.10 setjmp和longjmp函数
int setjmp(jmp_buf env);
void longjmp(jmp_buf env,int val);
出错时跳回位置,会回滚原来的值,如果不想回滚
则用
volatile int sum;定义
cmd_add
getcwd
第八章:
ID 0 交换进程swapper,系统进程
/etc/init
/sbin/init
读/etc/rc*文件
进程ID 2 是页精灵进程(pagedaemon),此进程负责支持虚存系统的请页操作(内核进程)
个现存进程调用 f o r k函数是U N I X内核创建一个新进程的唯一方法(内核不能创建)
fork调用一次,但返回两次,子返0,父返子id
子进程调要你给getppid获得父进程的进程ID
execlp(file,arg0,..,0)
execvp(file,argv)
execl(path,arg0,..0)
execv(path,argv)
execle(path,arg0,..0,envp)
execve(path,argv,envp);
表8-1 检查w a i t和w a i t p i d所返回的终止状态的宏
WIFEXITED(status) 若为正常终止子进程返回的状态,则为真
WIFSIGNALED(status) 若为异常终止子进程返回的状态
WIFSTOPPED(status) 若为当前展厅子进程返回的状态,则为真
问题:父亲怎么等待儿子死掉,儿子怎么等待父亲死掉(有空就问问)
while(getppid() !=1)
s l e e p ( 1 ) ;
8.12 system函数
system("date > file");
#include <stdlib.h>
int system(const char * cmdstring) ;
因为s y s t e m在其实现中调用了f o r k、e x e c和w a i t p i d
第十章:
信号是软件中断
SIGABRT是夭折
信号,当进程调用abort函数时产生这种信号。SIGALRM是闹钟信号,当由alarm函数设置的时
间已经超过后产生此信号
信号:
第14章
三种系统V IPC:消息队列、信号量以及共享存储器之间有很多相似之处。
每个内核中的I P C结构(消息队列、信号量或共享存储段)都用一个非负整数的标识符
( i d e n t i f i e r )加以引用
槽使用顺序号
第15章:
发送和接收文件描述符
int send_fd(int spipefd, int filedes) ;
int send_err(int spipefd, int status, const char *errmsg) ;
两个函数返回:若成功则为0,若出错则为- 1
int recv_fd(ints pipefd, ssize_t (* userfunc)(int, const void *, size_t));
返回:若成功则为文件描述符,若出错则< 0
在S V R 4之下,文件描述符用两个ioctl命令在一流管道中交换,这两个命令是: I _ S E N D F D
和I _ R E C V F D
open read write ioctl close
- 大小: 25.2 KB
- 大小: 26 KB
- 大小: 85.1 KB
- 大小: 59.2 KB
分享到:
相关推荐
linux嵌入式C语言学习教程【李慧芹老师】的部分代码【看视频自己写的】linux嵌入式C语言学习教程【李慧芹老师】的部分代码【看视频自己写的】linux嵌入式C语言学习教程【李慧芹老师】的部分代码【看视频自己写的】...
Linux下C语言开发笔记整理涵盖了从基础知识到网络通信的多个方面,主要围绕在Unix/Linux系统环境下使用C语言进行软件开发的各项技术与理论。以下是从文件提供的信息中提炼的知识点。 ### Unix/Linux系统基本命令和...
"精通UNIX下C语言编程与项目实践+源代码+笔记.zip" 是一个包含详细学习材料的压缩文件,它包括了书籍、源代码以及笔记。这将帮助学习者不仅了解理论知识,还能通过实际的项目练习来加深理解。标签揭示了其主要内容:...
【Linux C笔记】是针对初学者的一份综合学习资料,主要涵盖了Linux操作系统、Unix系统、C语言编程、网络基础知识以及Vim编辑器的使用。这份笔记旨在帮助新手快速理解和掌握这些核心IT领域的基本概念和技能。 Linux...
“Linux_C编程一站式学习_最终版__带目录的pdf更方便查找与做笔记.pdf”这个文档很可能包含了关于这两方面的详细教程,包括理论知识、实例讲解和实践指导。目录的存在使得查找特定主题更加容易,而做笔记的功能则有...
Linux Shell编程是Linux系统管理与自动化任务中的重要一环,主要通过编写脚本来实现对操作系统进行交互和控制。本文将详细解析Linux Shell编程中的几个关键概念:正则表达式、find命令、grep命令以及sed命令。 1. *...
unix_c++学习笔记.chm 学习代码
《Linux_C编程一站式学习》是一本专为C语言爱好者和开发者设计的教程,它结合了Linux操作系统环境,提供了丰富的实践案例,旨在帮助读者深入理解和掌握C语言编程技能。作者宋劲杉通过实例教学的方式,使得复杂的理论...
Linux课程学习笔记 -韩顺平 包含c/c++/python/java 专项 面试题 PDF PPT 笔记 面试题 (百度网盘链接 永久有效) 自学,做笔记,复习可用
在本文中,我们将深入探讨ARM架构下的...这份笔记文档详细记录了这些过程,对于学习和实践Linux在ARM平台上的移植具有很高的参考价值。通过深入学习和实践,开发者可以更好地理解和掌握嵌入式Linux系统开发的各个环节。
Linux 嵌入式学习笔记主要涵盖了Linux操作系统的基础知识以及C语言编程的相关内容。下面将对这些知识点进行详细的解析。 1. Linux基础操作: - 登录:在Linux系统中,用户通过`用户名:密码`的方式登录系统。 - ...
这是我的嵌入式Linux C开发学习笔记。 该笔记包括文件IO、标准IO、串口通讯、网络通讯的相关内容。 使用vim打开,格式为.h 文件遵循MIT Lisense
2. **进阶阶段**:加强C语言或Java语言能力,学习UNIX环境高级编程。 3. **实战阶段**:进行LINUX应用开发,如SHELL脚本编程,或者嵌入式开发工具的使用。 4. **阅读书籍**:参考《鸟哥的私房菜》、《LINUX从入门到...
### Linux C编程一站式学习知识点概览 #### 一、书籍简介 本书《Linux C编程一站式学习》是由宋劲杉编写,北京亚嵌教育研究中心出版的一本高质量Linux C编程教材。作者宋劲杉拥有丰富的教学经验和技术积累,为读者...
Linux学习笔记 本文档主要记录了 Linux 操作系统的学习笔记,涵盖了 Basic 的编程、VI 编辑器的使用、GCC 编译器的应用、GDB 调试工具的使用等方面的知识点。 一、编程基础 * 了解 C 语言的基本语法,例如变量...
linux学习笔记
Linux课堂学习笔记主要涵盖了Linux操作系统、ARM架构以及设备驱动程序等相关知识。这是一份非常有价值的教育资源,适合对嵌入式系统、Linux内核以及硬件驱动感兴趣的学员深入学习。 首先,让我们来了解一下Linux...
在Linux操作系统的学习中,掌握命令行的使用是至关重要的。...总的来说,Linux学习笔记是一个全面了解和掌握Linux系统操作的基础教程,涵盖了从基本命令到高级管理的诸多方面,对提升Linux技能有很大帮助。
PF_RING是网络分析工具中的一个高级框架,它被设计用来提高网络数据包捕获的性能。通过了解PF_RING的设计...PF_RING的学习笔记为我们提供了宝贵的信息和经验分享,是学习和研究网络数据包捕获技术不可或缺的参考材料。