Linux
文章平均质量分 72
去留意
也许是不知梦的缘故,琉璃之人追逐幻影。
展开
-
Linux System V IPC
Linux系统System V PIC共享内存消息队列信号灯集原创 2021-09-27 17:09:30 · 170 阅读 · 0 评论 -
网络编程 UDP基础
网络编程 UDP基础相关AIP1 int fd = socket(AF_INET,SOKC_DGRAM,0); 请参照TCP通信2 bind(); 请参照TCP通信接受数据,recvfrom#include <sys/types.h>#include <sys/socket.h>ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct soc原创 2021-09-21 13:02:47 · 60 阅读 · 0 评论 -
网络编程 TCP基础
网络编程 TCP基础TCP编程API 介绍socket#include <sys/types.h> /* See NOTES */#include <sys/socket.h>int socket(int domain, int type, int protocol);参数domainAF_INET IPv4 Internet protocols ip(7)AF_INET6 I原创 2021-09-21 13:02:16 · 62 阅读 · 0 评论 -
网络编程基础(一)
网络基础网络采用分层的思想每一层上实现不同的功能,对上层的数据进行透明传输每一次向上层提供服务,同时使用下层的服务网络OSI分层物理层数据链路层网络层传输层会话层表示层应用层OSI模型相关协议很少使用,但是模型本身非常统用OSI模型是一个理想化模型,尚未有完整的实现socketsocket代表着网络编程的一种资源。socket的类型:流式套接字(SOCKET_STREAM): 唯一对应着TCP提供了一种面向连接的、可靠的数传输服务,数据无差错、无重复的发送且按顺序原创 2021-09-21 13:01:56 · 61 阅读 · 0 评论 -
线程 -- 条件变量 生产者消费者问题
Linux线程同步问题使用条件变量模拟生产者消费者问题原创 2021-09-15 20:25:29 · 77 阅读 · 0 评论 -
线程 -- 读写锁
读写锁与互斥量类似,但读写锁允许更高的并行性。其特性为:写独占,读共享。读写锁具备三种状态:读模式下加锁状态(读锁).写模式下加锁状态(写锁).不加锁状态.读写锁的特性读锁可以重复加,当加读锁,线程可以同时读取文件。此时加写锁,会被阻塞,直到读锁全部解锁。写锁只能加一次,只有加锁的进程可以修改文件。此时加读锁写锁都会被阻塞,直到写锁解锁。写锁的优先级高于读锁。读写线程场景分析线程A有写锁,线程B请求读锁 答:B阻塞线程A有写锁,线程B请求写锁 答:B阻塞原创 2021-09-15 17:57:46 · 384 阅读 · 0 评论 -
线程同步 - mutex建议锁
线程同步同步的概念所谓同步,即同时起步,协调一致。不同的对象,对“同步”的理解方式略有不同。如,设备同步,是指在两个设备之肉规定一个共同的时间参考;数据库同步,是,让两个或多个数据库内容保持一致,或者按需要部分保持一致;文件同步,是指让两个或多个文件夹里的文件保持一敏。等等.而,编程中、通信中所说的同步与生活中大家印象中的同步概念略有差异。“同”字应是指协同、协助、互相配合,主旨在协同步调,按预定的先后次序运行;线程同步同步即协同步调,按预定的先后次序运行。线程同步,指一个线程发出某一功能调用时原创 2021-09-15 15:53:39 · 94 阅读 · 0 评论 -
Linux线程
Linux线程线程的概念什么是线程LWP: light weight process轻量级的进程,本质仍是进程(在Linux环境下)进程: 独立地址空间,拥有PCB.线程:也有PCB,但没有独立的地址空间(共享).区别:在于是否共享地址空间。 独居(进程);合租(线程)。Linux下:线程:最小的执行单位进程:最小分配资源单位,可看成是只有一个线程的进程。Linux内核线程实现原理类Unix系统中,早期是没有“线程”概念的, 80年代才引入,借助进程机制实现出了线程的概念。因此在这原创 2021-09-14 20:16:50 · 94 阅读 · 0 评论 -
进程相关 -- 守护进程
Linux进程相关 – 守护进程相关概念进程组概念和特性进程组,也称之为作业。BSD于1980年前后向Unix中增加的一个新特性。代表一个或多个进程的集合。每个进程都属于一个进程组。在waitpid,函数和kill函数的参数中都普使用到。操作系统设计的进程组的概念,是为了简代对多个进程的管理。当父进程,创建子进程的时候,默认子进程与父进程属于同一进程组。进程组ID==第一个进程1(组长进程)。所以,组长进程标识:其进程组ID==其进程ID可以使用kill -SIGKILL -进程组ID(负的)原创 2021-09-14 12:44:24 · 128 阅读 · 0 评论 -
进程通信 --- 信号 -- 练习
进程通信 — 信号 – 练习使用setitimer每秒打印一次hello, world#include<stdio.h>#include<sys/time.h>#include<signal.h>void catch_sig(int num){ printf("hello, world\n");}int main(){ struct sigaction sigAct; sigAct.sa_flags = 0; sig原创 2021-09-13 22:43:16 · 131 阅读 · 0 评论 -
进程通信 --- 信号
进程通信 – 信号信号在我们生活中随处可见, 如古代战争中摔杯为号, 现代战争中的信号弹, 体育杯赛中的信号枪…他们都有共同的共性: 1 简单 2 不能携带大量信息 3 满足某个特定的条件才发送.信号是信息的载体, Linux/Unix环境下, 古老经典的通信方式. 现代依然是主要的通信方式.Unix早期版本中就提供了消息机制, 但不可靠, 信号丢失. Berkeley 和 AT&T都对信号模型做出了更改, 增加了可靠信息机制. 但彼此并不兼容. POSIX.1 对可靠信号例程进行目标标准化原创 2021-09-13 20:49:17 · 176 阅读 · 0 评论 -
进程通信--mmap文件内存映射
进程通信–mmap 文件内存映射#include <sys/mman.h>void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);int munmap(void *addr, size_t length);PROT_EXEC //Pages may be executed.PROT_READ // Pages may be read.PROT_W原创 2021-09-08 21:14:19 · 499 阅读 · 0 评论 -
进程通信--管道
进程通信–管道IPC: InterProcess Communication 进程间通信, 通过内核提供的缓冲区进行数据交换机制.IPC通信的方式有pipe 管道 – 最简单的. — 有血缘关系的fifo 有名管道.mmap 文件映射IO (文件共享IO) – 速度最快本地socket 最稳定的信号 — 携带信息量最小的共享内存 —消息队列管道 -半双工通信常见的通信方式 :单工(数据流向只能是一个方向 – 广播 接听只能接听不能有任何反馈)半双工 (同一个时刻,数原创 2021-09-08 14:42:43 · 126 阅读 · 0 评论 -
Linux文件相关函数-文件夹信息
文件信息相关stat 查看文件信息获得文件详细信息#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>int stat(const char *pathname, struct stat *buf);struct stat { dev_t st_dev; /* ID of device containing file */ // 设备编号原创 2021-09-07 22:10:55 · 262 阅读 · 1 评论 -
Linux文件IO操作
文件IOopen查看man 2 open#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);// pathname 文件名必选项O_RDONLY 只读O_WRONLY 只写O_RDW原创 2021-09-07 22:10:06 · 255 阅读 · 1 评论 -
Linux进程相关 创建与回收
进程目标掌握fork/getpid/getpid/getppid函数的使用熟练掌握ps/kill命令的使用熟练掌握execl/execlp函数的使用说出什么时僵尸进程 什么是孤儿进程熟练掌握wait函数的使用熟练掌握waitpid函数的使用程序相关概念什么是程序 ?编译好的二进制文件 .什么是进程 ?运行着的程序. 站在程序员的角度,运行一系列指令的过程. 站在系统角度分配好资源的基本单位.区别程序占用磁盘,不占用系统资源内存占用系统资源一个程序对应多个原创 2021-09-07 22:09:37 · 1568 阅读 · 2 评论 -
VIM的使用
VIM的使用VI与VIM都是Linux系统上优秀的编辑器。VIM是VI的增强版,VIM在VI的基础上增加了很多插件方便程序员使用。VIM命令模式Ctrl+C锁定Ctrl+Q解除光标移动上下左右键,首先键盘的上下左右键可以控制光标的移动。但是一般情况系统第一次使用为更细VI/VIM时使用上下左右键无效。这一点需要注意。HJ左下 KL上右#h/l/j/k: 移动#个字符,如:2h -> 向左移动两个字符定位同行跳转0: 跳转到同行的行首 注意这里的数子是键盘上面的数子^: 行原创 2021-09-07 22:08:13 · 91 阅读 · 0 评论 -
Makefile
makefile学习makefile好处:一次编写,终身受益。makefile命名规则:makefileMakefilemakefile三要素目标依赖规则命令写法目标:依赖tab键 规则命令第一版makefileapp:main.cpp src/*.cpp g++ -o app -I ./include main.cpp src/*.cpp如果更改其中一个文件,所有的源码都重新进行编译。考虑分解编译过程,先生成.o文件.o文件变成结果。第二版makefil原创 2021-09-07 22:06:10 · 52 阅读 · 0 评论 -
GDB调试
GDB调试基础操作使用gdb调试时,使用gcc编译指令需要加上-g选项.启动gdb:gdb app(对应可执行程序名)在gdb中期启动程序r(run).start以调试的方式启动 --停留在main函数n(next) 执行下一条指令s(step) 单步调试,可进入函数内部.退出gdb : q(quit)设置启动参数 : set args 10 12列出代码 : l . l src/add.cpp:0设置断点 :b(break) 17 (17行设置断原创 2021-09-07 22:04:45 · 62 阅读 · 0 评论 -
GCC的使用
GCC的使用GCC编译参数-I --包含头文件路径(可以包含绝对路径也可包含行对路径)-O --优化选项,1-3,越高优先级越强-L --包含的库路径-l --指定库名(通常libxxx.so,libxxx.a,-lxxx)-o --目标文件-c --编译成.o文件-g --用与gdb调试,不加此选项不能gdb调试-Wall --显示更多的警告-D --指定宏编译-lstdc++ --编译C++代码示例:g++ main.cpp ./head/head.cpp原创 2021-09-07 22:03:50 · 80 阅读 · 0 评论 -
UnixLinux发展历史
UNIX/Linux介绍(基础篇)UNIX和Linux之间的关系是很有意思的话题。在目前主流的服务器端操作系统中,Unix诞生于20世纪60年代末,Windows诞生于20世纪80年代中期,Linux诞生于20世纪90年代初,可以说Unix是操作系统中的“老大哥”,后来的Windows和Linux都参考了UNIX。现在的Windows系统已经朝着“图形界面”的方向发展了,和UNIX有了巨大的差异,从表面甚至看不出两者的关联。UNIX的坎坷历史UINX系统是由肯·汤姆森(Ken Thompson)原创 2020-11-02 20:59:13 · 1006 阅读 · 0 评论 -
Linux系统初始配置
Linux系统初始配置Shell连接Linux(已经经过联网设置,开机自动联网)电脑上安装Xshell软件客户端。Linux下载shh服务:sudo apt-get install openssh-serverLiunx启动shh服务:sudo start ssh新建连接,输入相关信息完成连接远程桌面Linux(已经经过联网设置)在Linux终端安装xrdp服务器:$ sudo apt-get install xrdp查看IP地址:$ ifconfig打开win10电脑的远程桌面原创 2020-11-02 20:54:27 · 278 阅读 · 0 评论 -
Linux目录结构详解
Linux目录目录树(directory tree) :在Linux底下,所有的文件与目录都是由根目录开始的。那是所有目录与文件的源头, 然后再一个一个的分支下来,因此,我们也称这种目录配置方式为:目录树(directory tree), 这个目录树的主要特性有:目录树的启始点为根目录 (/, root);每一个目录不止能使用本地端的 partition 的文件系统,也可以使用网络上的 filesystem 。举例来说, 可以利用 Network File System (NFS) 服务器挂载某.原创 2020-11-02 20:53:54 · 126 阅读 · 0 评论