`
frenchleaf
  • 浏览: 39779 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

linux_c学习笔记

阅读更多
基本概念:
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语言学习教程【李慧芹老师】的部分代码【看视频自己写的】.zip

    linux嵌入式C语言学习教程【李慧芹老师】的部分代码【看视频自己写的】linux嵌入式C语言学习教程【李慧芹老师】的部分代码【看视频自己写的】linux嵌入式C语言学习教程【李慧芹老师】的部分代码【看视频自己写的】...

    linux下C语言开发笔记整理

    Linux下C语言开发笔记整理涵盖了从基础知识到网络通信的多个方面,主要围绕在Unix/Linux系统环境下使用C语言进行软件开发的各项技术与理论。以下是从文件提供的信息中提炼的知识点。 ### Unix/Linux系统基本命令和...

    精通UNIX下C语言编程与项目实践+源代码+笔记.zip_C语言项目linux_Linux/Unix编程_Linux下的c语言开

    "精通UNIX下C语言编程与项目实践+源代码+笔记.zip" 是一个包含详细学习材料的压缩文件,它包括了书籍、源代码以及笔记。这将帮助学习者不仅了解理论知识,还能通过实际的项目练习来加深理解。标签揭示了其主要内容:...

    linux_C笔记

    【Linux C笔记】是针对初学者的一份综合学习资料,主要涵盖了Linux操作系统、Unix系统、C语言编程、网络基础知识以及Vim编辑器的使用。这份笔记旨在帮助新手快速理解和掌握这些核心IT领域的基本概念和技能。 Linux...

    Linux_C编程一站式学习_最终版

    “Linux_C编程一站式学习_最终版__带目录的pdf更方便查找与做笔记.pdf”这个文档很可能包含了关于这两方面的详细教程,包括理论知识、实例讲解和实践指导。目录的存在使得查找特定主题更加容易,而做笔记的功能则有...

    Linux_shell编程学习笔记

    Linux Shell编程是Linux系统管理与自动化任务中的重要一环,主要通过编写脚本来实现对操作系统进行交互和控制。本文将详细解析Linux Shell编程中的几个关键概念:正则表达式、find命令、grep命令以及sed命令。 1. *...

    unix_c++学习笔记.chm

    unix_c++学习笔记.chm 学习代码

    Linux_C编程一站式学习

    《Linux_C编程一站式学习》是一本专为C语言爱好者和开发者设计的教程,它结合了Linux操作系统环境,提供了丰富的实践案例,旨在帮助读者深入理解和掌握C语言编程技能。作者宋劲杉通过实例教学的方式,使得复杂的理论...

    Linux-韩顺平学习笔记 - PDF-PPT

    Linux课程学习笔记 -韩顺平 包含c/c++/python/java 专项 面试题 PDF PPT 笔记 面试题 (百度网盘链接 永久有效) 自学,做笔记,复习可用

    我的arm_linux移植笔记_.zip_ARM驱动_UBOOT移植_linux 驱动_ram/linux移植_驱动移植

    在本文中,我们将深入探讨ARM架构下的...这份笔记文档详细记录了这些过程,对于学习和实践Linux在ARM平台上的移植具有很高的参考价值。通过深入学习和实践,开发者可以更好地理解和掌握嵌入式Linux系统开发的各个环节。

    linux嵌入式学习笔记更新中

    Linux 嵌入式学习笔记主要涵盖了Linux操作系统的基础知识以及C语言编程的相关内容。下面将对这些知识点进行详细的解析。 1. Linux基础操作: - 登录:在Linux系统中,用户通过`用户名:密码`的方式登录系统。 - ...

    嵌入式Linux C开发学习笔记

    这是我的嵌入式Linux C开发学习笔记。 该笔记包括文件IO、标准IO、串口通讯、网络通讯的相关内容。 使用vim打开,格式为.h 文件遵循MIT Lisense

    韩顺平老师Linux_视频笔记.doc

    2. **进阶阶段**:加强C语言或Java语言能力,学习UNIX环境高级编程。 3. **实战阶段**:进行LINUX应用开发,如SHELL脚本编程,或者嵌入式开发工具的使用。 4. **阅读书籍**:参考《鸟哥的私房菜》、《LINUX从入门到...

    Linux_C编程一站式学习_最终版__带目录的pdf更方便查找与做笔记.pdf

    ### Linux C编程一站式学习知识点概览 #### 一、书籍简介 本书《Linux C编程一站式学习》是由宋劲杉编写,北京亚嵌教育研究中心出版的一本高质量Linux C编程教材。作者宋劲杉拥有丰富的教学经验和技术积累,为读者...

    linux学习笔记.pdf

    Linux学习笔记 本文档主要记录了 Linux 操作系统的学习笔记,涵盖了 Basic 的编程、VI 编辑器的使用、GCC 编译器的应用、GDB 调试工具的使用等方面的知识点。 一、编程基础 * 了解 C 语言的基本语法,例如变量...

    Linux C之学习笔记

    linux学习笔记

    linux课堂学习笔记

    Linux课堂学习笔记主要涵盖了Linux操作系统、ARM架构以及设备驱动程序等相关知识。这是一份非常有价值的教育资源,适合对嵌入式系统、Linux内核以及硬件驱动感兴趣的学员深入学习。 首先,让我们来了解一下Linux...

    linux学习笔记,linux命令整理

    在Linux操作系统的学习中,掌握命令行的使用是至关重要的。...总的来说,Linux学习笔记是一个全面了解和掌握Linux系统操作的基础教程,涵盖了从基本命令到高级管理的诸多方面,对提升Linux技能有很大帮助。

    PF_RING_学习笔记

    PF_RING是网络分析工具中的一个高级框架,它被设计用来提高网络数据包捕获的性能。通过了解PF_RING的设计...PF_RING的学习笔记为我们提供了宝贵的信息和经验分享,是学习和研究网络数据包捕获技术不可或缺的参考材料。

Global site tag (gtag.js) - Google Analytics