linux
文章平均质量分 59
Advsance
我们的征途是星辰大海
展开
-
lsof的使用
lsof原创 2022-07-24 22:58:19 · 452 阅读 · 0 评论 -
makefile的使用
直接开始说怎么使用吧makefile虽然现在直接写比较少,而且笔直一年开发了接触也比较少但是吗不管是什么cmake也好还是qmake也好最后也都是转换成了makerfile了。自己平时写dome的时候如果有多个文件一个一个的编译也确实不方便。makefile 的三要素...原创 2021-09-05 14:54:12 · 236 阅读 · 0 评论 -
Linux中在代码中获取用户名和当前登录的用户名
网上获取用户名字的方法很多,但是有些一使用sudo命令,获取到的用户名就是root的用户名了。直接上代码#include <stdio.h>#include <pwd.h>#include <unistd.h>#include <stdlib.h>int main(){ struct passwd *pwd; pwd = getpwuid(getuid()); char * en = getenv("USER"); char *原创 2021-03-07 12:58:09 · 2136 阅读 · 0 评论 -
Linux命令详细总结(一)
who, who am i , w, users, tty命令who这个命令可以查看当前系统上有哪些连接。who am i这个命令和上述一样但是只能显示自己单独的信息。whoami这个命令功能十分简单,用于看当前登录用户的用户名w这个命令和who命令类似但是会显示出更加详细的信息。如下图如图所示,现实的9点54分为当前系统的时间,up 19min 表示当前系统已经启动了19min, 目前有两个用户在使用(本环境是用VM开启的linux虚拟机,在Win上使用Xshell进行的连接,开启原创 2020-06-26 11:40:41 · 188 阅读 · 0 评论 -
线程池
线程池一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线 程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够 保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络 sockets等的数量线程池的应用场景: *1.需要大量的线程来完成任务,且完成任务的...原创 2020-02-02 03:01:37 · 186 阅读 · 0 评论 -
信号量(实现线程的同步与互斥)
信号量:功能: 实现线程间的同步与互斥本质:一个计数器(做资源计数-判断当前是否能对临界资源进行操作)+等待+唤醒 +等待队列原理:互斥原理:只具有0或1计数时,就可以实现互斥初始计数为1,1表示当前只有一个线程能获取资源;其实现:posix...原创 2020-02-01 14:46:23 · 1072 阅读 · 0 评论 -
条件变量(实现同步)
条件变量:用于实现线程间同步条件变量通过提供线程等待,直到被唤醒的进程唤醒,从而实现线程同步;条件变量本身不具备条件判断功能;也就是意味着什么时候该等待,什么时候该唤醒等待的线程,都需要用户来控制;实现流程:pthread_cond_wait:(解锁+休眠) +被唤醒后加锁...原创 2020-01-31 16:13:38 · 1074 阅读 · 0 评论 -
Linux线程互斥(线程安全)
线程安全可以看一下的实例:#include <iostream>#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>using namespace std;int ticket = 100; //thread_mutex...原创 2020-01-30 19:59:22 · 228 阅读 · 0 评论 -
线程创建以及线程控制
线程底层:在linux下PCB模拟实现进程,通俗的说就是一个大的PCB下有很多小的PCB,称为轻量级进程。在一个进程中有多个PCB,而这些所有的PCB共用同一份虚拟地址空间。而这些PCB共同基层构成一个PCB组,一个线程组就为一个进程。3.一个线程是程序执行的基本单位,进程是资源调度的基本单位。线程是CPU调用的基本单位。线程之间的资源共享 :独有:函数调用栈寄存器 (不是硬件...原创 2020-01-29 22:56:14 · 217 阅读 · 0 评论 -
UDP实现通信
UDP协议:无连接 不可靠传输 面向数据报传输本文目的是在linux下能实现简单的UDP通信搭建流程服务端:创建套接字绑定地址信息接收消息回复消息完成这些动作主要依靠系统提供的API来完成创建套接字:int socket(int domain, int type, int protocol);domain:是用什么版本的协议 例如 IPV4 or IPV6type : 创...原创 2019-11-09 20:50:11 · 315 阅读 · 0 评论 -
linux下GDB调试
对于一个.C程序说 ,编码完成后 ,要经过 预处理 编译 汇编 链接等过程最后生成可以执行的二进制文件.// 下面的filename代表 文件名称首先先复习一下整个过程a. 预处理 宏展开,去注释,将源代码展开 gcc -E [filename.c] -o [filename].ib. 编译 语法语义检测, 生成汇编代码 gcc -S [filename.i] -...原创 2019-11-01 15:14:57 · 222 阅读 · 0 评论 -
TCP特性剖析
引言:前面介绍了TCP/和UDP协议的基本特性,以及基本的字段信息,三次握手,四次挥手等。下面深入剖析TCP协议https://blog.csdn.net/Advsance/article/details/97623764https://blog.csdn.net/Advsance/article/details/97631156TCP协议TCP的保活机制:通信双方长时间没有往来,则每一段...原创 2019-08-15 17:37:03 · 359 阅读 · 0 评论 -
网络编程基础(一)
1.网络的发展背景1)最开始的计算机是为了计算导弹的弹道,当时计算机没有网络,数据只能从一台计算机拷贝到令一台,由于很麻烦,就出现了交换机,局域网:一千米以下城域网:10千米以下,广域网: 大于10公里,因特网:互联网 ,以太网(走网方式),令牌环网(走网方式,快被淘汰);通信方式:在网络中唯一标识一台主机,— uint32 — 无符号32位的整数在网络通信中的每一条数据中都应该包含有目的...原创 2019-08-10 20:47:40 · 160 阅读 · 0 评论 -
进程,进程的状态,linux下的进程查看,以及进程的创建过程
进程1.什么进程1)从用户角度就是运行起来的程序进程是什么:进程就是运行起来的程序—用户层面的理解2)从操作系统的层面理解:程序运行需要将代码数据加载带内存中,而操作系统上运行了很多程序,操作系统就必须去管理这些程序的运行,先描述在组织进行管理,在操作系统的层面进程就是操作系统对一个运行的程序的描述。比如说校长想了解一个学生,校长看学生的档案就行,校长眼里看到了同学们的档案就仿佛看到真人...原创 2019-08-13 18:27:52 · 494 阅读 · 0 评论 -
TCP协议的三次握手,与四次挥手
TCP协议:面向连接三次握手:三次握手图像标识如下:连接建立过程:1)server(服务端)先创建套接字,再绑定地址信息,并且开始监听,看是否有新的连接到来 此时这个套接字的状态为—LISTEN2) client(客户端) 创建套接字,绑定地址信息,然后向服务端发起请求3)连接建立的过程(三次握手):client端向server端发送SYN(6位保留位中)建立连接请求信号(第一次握...原创 2019-07-29 12:28:55 · 189 阅读 · 0 评论 -
Linux 基础操作
vim 打开后 后如果直接想退出 如果用ctrl+c则是返回到了上一个界面 但是是给vim发了一个中断信号(后台运行) vim会形成一个交换文件ps-aux 查看进程ps -aux | grep (名称)查看该进程kill -9 pid 强杀该进程(core dumped)...原创 2019-07-03 00:29:19 · 167 阅读 · 0 评论 -
生产者与消费者模型代码实现
用一个队列创建一个仓库,生产线程往里加数据,而消费者在里面读。如果仓库满了,消费者无法生产,如果仓库为0,消费者线程无法使用#include <iostream> #include<pth...原创 2019-07-03 00:20:35 · 319 阅读 · 0 评论 -
Linux下信号的总结与概况
信号:信号在进程中的注册:在pcb中使用位图标记进程是否收到信号 sigset_t /sigqueue可靠信号与非可靠信号之分: 是否针对已经注册的信号添加新的信号节点(每个信号信号的处理信号的阻塞:组织信号被递达:信号依然可以注册,只是暂时不处理函数的可重入与不可重入:在多个执行流中是否同时执行进入同一个函数...原创 2019-06-22 19:18:33 · 162 阅读 · 0 评论