- 博客(8)
- 收藏
- 关注
原创 linux高级程序设计——进程
进程的定义程序:程序是存放在存储介质上的一个可执行文件。进程:进程是程序的执行实例,包括程序计数器,寄存器和变量的当前值。程序是静态的,进程是动态的。程序是一些指令的有序集合,而进程是程序执行的过程。进程是程序的一次执行过程。进程的状态是变化的,其包括进程的创建,调度和消亡。只要程序运行,此时就是进程,程序每运行一次,就会创建一个进程。在linux系统中,进程是管理事务的基本单元。进程拥有自己独立的处理环境和系统资源(处理器,存储器,I/O设备,数据,程序)。可用exec函数由内核将程序读
2020-11-30 13:56:30
543
1
原创 Linux高级程序设计——I/O函数——系统调用与库函数
系统调用与库函数库函数由两类函数组成1.不需要调用系统调用不需要切换到内核空间即可完成函数全部功能,并且将结果反馈给应用程序,如strcpy,bzero等字符串操作函数。2.需要调用系统调用需要切换到内核空间,这类函数通过封装系统调用去实现相应功能,如printf,fread等库函数与系统调用的关系并不是所有的系统调用都被封装成了库函数,系统提供的很多功能都必须通过系统调用才能实现。系统调用是需要时间的,程序中频繁使用系统调用会降低程序的运行效率。当运行内核代码时,CPU工作在内核态,
2020-11-17 13:06:33
211
原创 Linux高级程序设计——I/O函数——remove函数
remove库函数删除文件#include<stdio.h>int remove(const char *pathname);参数:pathname:文件的路名+文件名返回值:成功返回0;失败返回-1,可以利用perror去查看原因。
2020-11-17 12:34:50
259
原创 Linux高级程序设计——I/O函数——read函数
read函数把指定数目的数据读到内存#include<unistd.h>ssize_t read(int fd, void *addr, size_t count);参数:fd:文件描述符addr:内存首地址count:读取的字节数返回值:成功返回实际读取到的字节数。失败返回-1,可以利用perror去查看原因.注意:如果读取文件末尾,返回0从终端读取数据从文件中读取数据...
2020-11-17 12:22:12
186
原创 Linux高级程序设计——I/O函数——write函数
write函数把指定数目的数据写到文件#include<unistd.h>ssize_t write(int fd, const void *addr,size_t count);参数:fd : 文件描述符addr:数据首地址count:写入数据的字节个数返回值:成功返回实际写入数据的字节个数失败返回-1,可以利用perror去查看原因。向终端写入数据:...
2020-11-17 09:53:12
155
原创 linux高级程序设计——I/O函数——close函数
close函数#include<unistd.h>int close(int fd);功能: 关闭一个文件描述符参数:fd:指定文件的文件描述符,open函数的返回值返回值成功: 0失败: -1
2020-11-16 10:37:18
222
原创 linux高级程序设计——系统调用I/O函数
文件描述符文件描述符是非负整数。打开现存文件或新建文件时,系统(内核)会返回一个文件描述符。文件描述符用来指定已打开的文件。在系统调用(文件IO)中,文件描述符对文件起到标识作用,如果要操作文件,就是对文件描述符的操作一个程序运行或者一个进程开启时,系统会自动创建三个文件描述符0 标准输入1 标准输出2 标准输出出错文件IO的文件描述符和标准IO的文件指针的对应关系文件I0 标准IO0
2020-11-15 12:17:40
129
原创 递归函数内部的执行顺序
递归函数内部的执行顺序总结:每一级的递归都使用它自己的私有的变量n,可以查看地址的值来证明。每一次函数调用都会有一次返回.当程序流执行到某一级递归的结尾处时,它会转移到前一级递归继续执行。位于递归调用语句前的语句的执行顺序和各个被调用函数的顺序相同,位于递归调用语句后的语句的执行顺序和各个被调用函数的顺序相反。递归函数中必须包含可以终止递归调用的语句来避免死循环。...
2020-11-08 21:00:36
881
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人