博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 7 8 9 10 11 12 13 14 下一页

2023年3月17日

摘要: exec话函数概念 1. 功能: 1. // 能让父子进程实现不相干的操作,实现换核不换壳的功能 2. // 能够替换进程地址空间中源代码.txt段,执行一个另外的程序无需创建额外的地址空间 3. // 在一个运行的程序a,在a中调用另外 一个应用程序b 2. 返回值 1. // 如果函数执行成功, 阅读全文

posted @ 2023-03-17 09:54 乔55 阅读(5) 评论(0) 推荐(0) 编辑

摘要: 孤儿进程 1. // 父进程死了,子进程还活着,子进程叫孤儿进程 2. // 孤儿被干爹init进程领养,init进程变成了孤儿进程的父进程 3. // 为什么需要父进程?因为释放子进程占用的资源需要父进程 -. 进程结束之后,能够释放用户区空间 -. 释放不了pcb(在内核空间),必须由父进程释放 阅读全文

posted @ 2023-03-17 09:54 乔55 阅读(21) 评论(0) 推荐(0) 编辑

摘要: X 阅读全文

posted @ 2023-03-17 09:54 乔55 阅读(4) 评论(0) 推荐(0) 编辑

摘要: truncate int truncate(const char *path, off_t length); int ftruncate(int fd, off_t length); rename int rename(const char *old, const char *new); // 它是 阅读全文

posted @ 2023-03-17 09:53 乔55 阅读(26) 评论(0) 推荐(0) 编辑

摘要: chdir int chdir(const char *path); // 改变文件路径,改变应用程序执行时进程所在的路径 int fchdir(int fd); getcdw char *getcwd(char *buf, size_t size); // 相当于linux命令:pwd char 阅读全文

posted @ 2023-03-17 09:53 乔55 阅读(42) 评论(0) 推荐(0) 编辑

摘要: EOF 判断指针是否到了文件末尾 若打开文件的形式是文本文件的话,EOF值为-1就表示到了末尾 若打开文件的形式是二进制文件的话,-1值就可能是内容值,不一定代表到了末尾 ```c char ret = fgetc(fp); // 从文件中读一个字符,然后文件指针会跳一个字节 while(ret ! 阅读全文

posted @ 2023-03-17 09:53 乔55 阅读(40) 评论(0) 推荐(0) 编辑

摘要: 阻塞与非阻塞概念 普通文件的默认是非阻塞的 终端设备的默认是阻塞的 管道和套接字的默认是阻塞的 产生阻塞的场景:读设备、读网络 阅读全文

posted @ 2023-03-17 09:53 乔55 阅读(16) 评论(0) 推荐(0) 编辑

摘要: 常用命令 strace:可以跟踪一个程序在执行时所用到的系统调用:strace ./mytarget od -tcx f.c:查看文件的16进制代码形式 od -tcd f.c:查看文件的10进制代码形式 阅读全文

posted @ 2023-03-17 09:53 乔55 阅读(4) 评论(0) 推荐(0) 编辑

摘要: ## linux命令 ```cpp // 改变文件权限 chmod 666 f.c chmod a+x f.c chmod u+x f.c chmod g+x f.c cmode o+x f.c ``` ## chown详解 ```c int chown(const char *path, uid_ 阅读全文

posted @ 2023-03-17 09:53 乔55 阅读(22) 评论(0) 推荐(0) 编辑

摘要: ## 链接函数 ```cpp // 基本概念 - 硬链接:其实是目录项的同义词,且不可以给分区、目录建立硬链接 - 符号链接:可以给跨分区、目录建立符号链接 // link函数 - int link(const char *oldpath, const char *newpath); - 为某文件创 阅读全文

posted @ 2023-03-17 09:53 乔55 阅读(13) 评论(0) 推荐(0) 编辑

2023年3月16日

摘要: 结构体基本概念 结构体名可以与其成员名重名,结构体成员变量名可以与其他变量重名 结构体类型和系统提供的标准数据类型具有同样的地位 允许具有相同类型的结构体变量互相赋值:student1 = student2; 结构体嵌套:只能嵌套另外的结构体,不能嵌套自身结构体,不过可以嵌套自身结构体的指针类型 结 阅读全文

posted @ 2023-03-16 07:20 乔55 阅读(9) 评论(0) 推荐(0) 编辑

摘要: FILE基本概念 缓冲区文件系统为每个正在使用的文件在内存中开辟文件信息区,用FILE结构体来描述该信息区 FILE定义在stdio.h中 阅读全文

posted @ 2023-03-16 07:19 乔55 阅读(82) 评论(0) 推荐(0) 编辑

2023年3月14日

摘要: PCB进程控制块 本质:是一个结构体,位于内核区中 文件描述符表:结构体的一个成员 阅读全文

posted @ 2023-03-14 07:05 乔55 阅读(13) 评论(0) 推荐(0) 编辑

摘要: ## struct stat结构体成员 ```c struct stat{ dev_t st_dev; // 文件的设备编号 ino_t st_ino; // inode mode_t st_mode; // 文件的类型的存取的权限 nlink_t st_nlink; // 连接到该文件的硬链接数目 阅读全文

posted @ 2023-03-14 07:05 乔55 阅读(16) 评论(0) 推荐(0) 编辑

摘要: 下载安装包 ftp://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.bz2 , http://ftp.gnu.org/gnu/mpfr/mpfr-4.2.0.tar.gz ftp://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz http://ft 阅读全文

posted @ 2023-03-14 07:03 乔55 阅读(20) 评论(0) 推荐(0) 编辑

摘要: read详解 int ret = ssize_t read(int fd, void *buf, size_t count); // ret == -1 :出错,并设置errno // ret == -1 && errno == EAGAINA: // 不是read失败,而是以非阻塞方式读设备或网络 阅读全文

posted @ 2023-03-14 07:03 乔55 阅读(87) 评论(0) 推荐(0) 编辑

摘要: 当前文件偏移量 所有打开的文件都有一个当前文件偏移量,current file offset,以下简称为cfo 当前文件偏移量,即是当前文件指针位置 cfo通常是一个非负整数,用于表明文件开始处到当前文件指针位置的字节数 读写操作通常开始于cfo,并且能使cfo增大,增量即为读定的字节数 文件打开时 阅读全文

posted @ 2023-03-14 07:03 乔55 阅读(57) 评论(0) 推荐(0) 编辑

摘要: FILE结构体基本概念 // FILE结构体成员 struct _iobuf { charchar *_ptr; //文件输入的下一个位置 int _cnt; //当前缓冲区的相对位置 charchar *_base; //基础位置(文件的起始位置) int _flag; //文件标志 int _f 阅读全文

posted @ 2023-03-14 07:03 乔55 阅读(202) 评论(0) 推荐(0) 编辑

摘要: Linux编程遵循的标准 IEEE POSIX标准:在linux中用户编程接口(API)遵循了在UNIX中最流行的实用编程界面标准-POSIX标准 这些系统调用编程接口主要通过C库实现的,主要还是通过C语言实现的 接口系统调用接口是一样的,只是不同的产商这些接口的内部实现可能是不同的 阅读全文

posted @ 2023-03-14 07:03 乔55 阅读(16) 评论(0) 推荐(0) 编辑

摘要: 系统调用 也叫文件IO,由OS实现并提供给外部应用程序的编程接口(OS课程中叫程序接口):api 是应用程序同系统之间数据交换的桥梁 C库函数printf的过程详解 printf是无法直接操作硬件的,那它怎样把内容输出到显示器的呢?它做了一层层的向下的调用实现的 首先调用printf函数的这个进程会 阅读全文

posted @ 2023-03-14 07:03 乔55 阅读(61) 评论(0) 推荐(0) 编辑

摘要: 进程的虚拟内存图 windows的内存大致示意图 Linux的内存大致示意图 为什么使用虚拟地址空间 为什么要使用虚拟地址空间与物理地址空间映射,解决了什么问题 方便编译器和OS安排程序的地址分布 程序可以使用一系列连续的虚拟地址来访问物理内存中不相相邻的大内存缓冲区 方便进程之间的隔离 不同进程使 阅读全文

posted @ 2023-03-14 07:03 乔55 阅读(22) 评论(0) 推荐(0) 编辑

摘要: open函数 // opne函数详解 int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); 功能: 既能打开一个已存在的文件,也能创建并打开一个新的文件 返 阅读全文

posted @ 2023-03-14 07:03 乔55 阅读(69) 评论(0) 推荐(0) 编辑

摘要: dup int newfd = dup(int oldfd); // 复制文件描述符,返回最小且未被占用的文件描述符 // 即是,让newfd与oldfd均指向oldfd原指向的文件 // 失败返回-1,并设置errno值 dup2 int dup2(int oldfd, int newfd); / 阅读全文

posted @ 2023-03-14 07:03 乔55 阅读(25) 评论(0) 推荐(0) 编辑

摘要: 调用历史命令 - !! // 执行上条命令 - ^old^new // 把上条命令中的old替换成new后执行 - !xxx // 执行以xxx开头的最近一条命令 - !xxx:p // 显示以xxx开头的最近一条命令,不执行 - !*:p // 显示上条命令所有参数 - !$:p // 显示上条命 阅读全文

posted @ 2023-03-14 07:02 乔55 阅读(9) 评论(0) 推荐(0) 编辑

摘要: 安装较新版本的vim yum install ncurses-devel git-core mkdir ~/myApp cd ~/myApp git clone https://github.com/vim/vim cd vim ./configure --with-features=huge -- 阅读全文

posted @ 2023-03-14 07:02 乔55 阅读(9) 评论(0) 推荐(0) 编辑

摘要: 安装更新的cmake cd ~/myApp wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz tar xvf cmake-3.6.2.tar.gz cd cmake-3.6.2/ ./bootstrap gmake gmake install 阅读全文

posted @ 2023-03-14 07:02 乔55 阅读(43) 评论(0) 推荐(0) 编辑

摘要: 安装较新版本python3 1. 安装依赖包 yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline 阅读全文

posted @ 2023-03-14 07:02 乔55 阅读(95) 评论(0) 推荐(0) 编辑

摘要: 安装plug-vim // 安装plug.vim cd git clone https://github.com/junegunn/vim-plug mk ~/.vim/autoload -p cd ~/.vim/autoload cp ~/vim-plug/plug.vim ./ // 配置~/. 阅读全文

posted @ 2023-03-14 07:02 乔55 阅读(85) 评论(0) 推荐(0) 编辑

摘要: 光标移动快捷键 // 移动光标 - ctrl+a:将光标从当前位置移动至行首 - ctrl+e:将光标从当前位置移动至行尾 - ctrl+b:光标向左移动1个字符 - ctrl+f:光标向右移动1个字符 // 删除字符 - ctrl+u:删除光标当前位置至行首内容 - ctrl+k:删除光标当前位置 阅读全文

posted @ 2023-03-14 07:01 乔55 阅读(23) 评论(0) 推荐(0) 编辑

摘要: vimrc注释 syntax on #进行语法检验,颜色显示 set nu #设置行号 set tabstop=4 #设置tab键宽度 set shiftwidth=4 #gg=G默认是个空格的缩进,设置为 set autoindent #自动缩进 set smartindent #智能缩进 set 阅读全文

posted @ 2023-03-14 07:01 乔55 阅读(20) 评论(0) 推荐(0) 编辑

摘要: make的选项 make -f mymakefile:make指定的文件 makefile语法规则 目标列表:依赖性列表 <TAB>命令列表 目标:一般指需要编译的目标,也可以是一个动作 makefile默认只执行第一个目标 伪目标:它不是一个文件,只是一个标签 依赖:执行当前目标所要依赖的先项 一 阅读全文

posted @ 2023-03-14 07:01 乔55 阅读(39) 评论(0) 推荐(0) 编辑

摘要: X 阅读全文

posted @ 2023-03-14 07:01 乔55 阅读(8) 评论(0) 推荐(0) 编辑

摘要: X 阅读全文

posted @ 2023-03-14 07:01 乔55 阅读(11) 评论(0) 推荐(0) 编辑

摘要: 阅读全文

posted @ 2023-03-14 07:00 乔55 阅读(19) 评论(0) 推荐(0) 编辑

2023年3月13日

摘要: X 阅读全文

posted @ 2023-03-13 09:43 乔55 阅读(7) 评论(0) 推荐(0) 编辑

摘要: ## 多态最常用的例子 ```cpp // 父类 class animal { public: virtual void eat() { cout eat(); ptr->sleep(); } void test() { animal a; person p; dog d; xxx_fun(&a); 阅读全文

posted @ 2023-03-13 09:42 乔55 阅读(14) 评论(0) 推荐(0) 编辑

摘要: ## 多态基本概念 ```cpp // 什么是多态 - 多态:由继承产生的相关的不同的类,其对象对同一消息作出不同响应 - 多态性:允许同一函数或操作符有不同的版本,不同对象执行不同的版本时具有多态性 - 编译时的多态性:表现为函数名、操作符重载 - 运行时的多态性:通过派生类和虚继承类来实现 - 阅读全文

posted @ 2023-03-13 09:41 乔55 阅读(26) 评论(0) 推荐(0) 编辑

摘要: 类模板详解 编译器不能为类模板推断模板参数类型,只能通过<>尖括号来指定模板参数类型 阅读全文

posted @ 2023-03-13 09:40 乔55 阅读(15) 评论(0) 推荐(0) 编辑

摘要: ## 友元的概念 ```cpp // 基本概念 - 在类Test内将外部XX声明为Test类的友元类或友元函数,则Test函数可以访问Test所有成员 - 友无关系3大特点 - 友元关系不能被继承 - 友元关系是单向的,如A是C是友元类,但并不表示C是A的友元类 - 友元关系不能传递性,如,A是B友 阅读全文

posted @ 2023-03-13 09:39 乔55 阅读(8) 评论(0) 推荐(0) 编辑

摘要: ## 继承与派生的基本概念 ```cpp // 子类与父类的关系 - 子类对象占内存空间大,可以直接将子类对象赋值给父类对象:parent p = c; - 子类对象占内存空间大,可以直接当做父类使用,只取其有用部分 - 父类指针可以指向子类对象。子类对象能满足父类指针的指向要求 - 子类指针不能直 阅读全文

posted @ 2023-03-13 09:39 乔55 阅读(38) 评论(0) 推荐(0) 编辑

上一页 1 ··· 7 8 9 10 11 12 13 14 下一页