文章分类 - Linux C
linux环境下基础指令、系统编程、以及网络编程
摘要:IPC方法 Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。 任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间 不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据 从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这
阅读全文
摘要:exec函数族 exec函数族 fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用e
阅读全文
摘要:linux进程大汇总 fork函数 返回值有2个: 本质上是一个进程--> 2个进程 > 各自对fork做返回. 1. 父进程:返回子进程的pid (非负整数 > 0) 2. 子进程:返回0,而且说明进程创建成功 最简单的创建进程 #include <stdio.h> #include <stdli
阅读全文
摘要:dup 与 dup2函数 dup用来复制参数oldfd所指的文件描述符。当复制成功是,返回最小的 尚未被使用过的文件描述符,若有错误则返回-1.错误代码存入errno中 返回的新文件描述符和参数oldfd指向同一个文件,这两个描述符共享 同一个数据结构,共享所有的锁定,读写指针和各项权限或标志位。
阅读全文
摘要:2+K vim模式下按完2,再按K,即可跳转到man-page lseek实现文件拓展 点击查看代码 #include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #
阅读全文
摘要:linux操作系统 -重在理解 C库IO函数工作流程 pcb和文件描述符 虚拟地址空间 库函数与系统函数的关系 虚拟地址空间 cpu为什么要使用虚拟地址空间与物理地址空间映射?解决了什么样的问题? 1.方便编译器和操作系统安排程序的地址分布。 程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的
阅读全文
摘要:gdb调试 小写字母l l 直接显示main.c里面的内容 l sort.c:n 显示sort.c里面第n(总共10行)行附近的代码 l sort.c:funcsort 显示sort.c里面funcsort的内容 按完l组合键之后,回车即可一直显示后续内容 断点 b 19 在19行打一个断点 条件断
阅读全文
摘要:gcc 重点 gcc 编译过程拆解 一步到位的编译 更详细的步骤见下图 指定头文件所在路径,使用参数 -I headDir 相关参数信息 静态库的制作 -超重点 1.生成*.o文件 2.使用ar工具将*.o打包-就生成了静态库 3.将静态库放到合适的位置 4.静态库的使用: 下面2种使用方式-重点
阅读全文
摘要:alias命令 vim相关快捷键 光标的移动 % : 跳转相互匹配 的 { } H : 向前 J : 向下 K : 向上 L : 向后 小写w: 光标走到下一个单词的首位字符 数字0:跳转到vim本行的行首 $或者shift+4 :跳转到vim本行的行尾 gg : 连续按两个‘g’,跳转到文本头部
阅读全文
摘要:vim设置行号: 注意: 即使是root不同用户有不同的 .vimrc 文件 如果发现在某个用户下不显示行号,就要修改相应用户下的文件 服务器的基本搭建 一、第一种方式ftp实名登录 ftp的作用:上传和下载文件,不允许操作目录,想操作目录就要对目录打包 1.首先打开以下几个配置 2.再重启ftp服
阅读全文
摘要:压缩命令 gzip 只能压缩文件 bzip2 bzip2相比于gzip的优点在于bzip2可以保留原文件 更高端,功能更多的压缩的方式 tar解压文件到指定目录 important 压缩之所以指定文件 .tar.gz 或者 .tar.bz2 是未来标识压缩压缩方式,避免解压时不知道怎么解压 rar和
阅读全文
摘要:003 基础命令 touch hello.c 文件不存在就创建文件,文件存在会修改文件的时间为当前时间 cp hello.c hello2.c hello2.c不存在会创建一个hello2.c,里面的内容和hello.c完全一样 hello2.c存在,会先把hello2.c里面的内容擦除,再把hel
阅读全文
摘要:002 1.注意本文针对的是Linux终端的命令 ctrl+p 相当于 ↑ 解释:上一个指令 ctrl+n 相当于 ↓ 解释:与上一个相反,指令向下走 2.与光标移动相关的快捷键 Ctrl+B/b 光标向前移动 Ctrl+F/f 光标向后移动 Ctrl+A/a 光标直接移动到头部 Ctrl+E/e
阅读全文
摘要:Linux C++学习记录开始了 001-第一行代码 此后将不定时更新Linux以及C++知识学习记录 ubuntu20 C++11 点击查看代码 #include<iostream> using namespace std; class Linux_Cpp { public: Linux_Cpp(
阅读全文
浙公网安备 33010602011771号