![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 79
DeRoy
微信公众号【编程学习基地】
展开
-
UNIX域套接字
文章目录UNIX域套接字serverclientmakefileRunnerUNIX域套接字域套接字作为进程间通信的一种手段,值得我们研究一下。域套接字实现本地进程间通信,同样有服务端和客户端之分。一个进程作为客户端,另一个进程作为服务端。这个和TCP socket类似,但是不一样。域套接字不经过底层网络。数据结构使用的是struct sockaddr_un。对于这个结构,重点便是填充sun_family和sun_path,sun_path是文件路径。调用的socket接口也是socket、bind原创 2022-03-02 16:53:14 · 2430 阅读 · 0 评论 -
makefile进阶
来源:微信公众号「编程学习基地」文章目录导入外部资源自定义编译规则不打印执行命令执行本地shell文件MakeFile传参CMake传参导入外部资源通过 include 导入外部资源例如新建 Rules.mk 文件,文件如下Project_Root_Dir = $(CURDIR)新建 makefile 文件,通过 include 导入外部资源include Rules.mk.PHONY: help all info自定义编译规则通过伪目标自定义编译规则include Rule..原创 2022-01-17 13:53:57 · 702 阅读 · 0 评论 -
IO多路复用技术详解
Linux网络IO模型中IO多路复用模型详解,select,poll,epoll典例,select实现简易聊天室,epoll实现简易回显http服务器。原创 2021-12-16 20:27:31 · 678 阅读 · 0 评论 -
Linux下lua安装使用,与C/C++交互
C++和Lua交互原创 2021-12-14 09:39:40 · 1109 阅读 · 1 评论 -
多线程编程C语言版
来源:微信公众号「编程学习基地」文章目录线程的概念线程的管理创建线程线程退出与等待线程的状态线程取消本文探讨PODIX线程相关内容线程的概念当 Linux 最初开发时,在内核中并不能真正支持线程。那为什么要使用多线程?使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。简要概..原创 2021-11-08 00:47:30 · 1473 阅读 · 0 评论 -
Linux网络编程TCP篇
来源:微信公众号「编程学习基地」文章目录TCP/IP协议网络应用程序常见的两种设计模式Linux Socket 网络编程TCP协议TCP编程服务端API接口socketbindUNIX本地协议族TCP/IP协议族listenaccept客户端API接口connectsend/recvTCP/IP协议TCP/IP 协议栈是一系列网络协议(protocol)的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。OSI 7层模型和TCP/IP四层网络模型对..原创 2021-11-04 00:01:34 · 2254 阅读 · 0 评论 -
linux下的stdin,stdout和stderr理解
linux下的stdin,stdout和stderr理解在linux中经常会看到stdin,stdout和stderr,这3个可以称为终端(Terminal)的标准输入(standard input),标准输出( standard out)和标准错误输出(standard error)。标准输入(standard input)在c语言中表现为调用scanf函数接受用户输入内容,即从终端设备输入内容。也可以用fscanf指明stdin接收内容。 标准输入的文件标识符为0。#include<s原创 2020-09-23 16:25:09 · 1493 阅读 · 0 评论 -
Linux文件IO操作总结(三千字长文总结)
文件操作在进行 Linux 文件操作之前,我们先简单了解一下 Linux 文件系统Linux文件类型Linux中文件类型只有以下这几种:符号文件类型-普通文件d目录文件,d是directory的简写l软连接文件,亦称符号链接文件,s是soft或者symbolic的简写b块文件,是设备文件的一种(还有另一种),b是block的简写c字符文件,也是设备文件的一种(这就是第二种),c是character的文件s套接字文件,这种文件类型用于进程间原创 2021-10-28 23:06:36 · 467 阅读 · 0 评论 -
argc,argv是什么
来源:微信公众号「编程学习基地」文章目录argc,argv是什么如何解析程序参数“选项”是什么?"选项字符串"是什么解析参数argc,argv是什么如果你是一个 Linux 开发者,那么你一定需要给应用程序传递参数。刚接触C语言的童鞋,学的第一个程序一定是这样的#include<stdio.h>int main(){ printf("hello world\n");}接触完 Linux 下C语言编程的童鞋,他会这样做#include<stdio.h>..原创 2021-10-23 18:29:30 · 9831 阅读 · 0 评论 -
Linux终端操作记录转gif
Linux终端操作记录转gifttyrecc安装sudo apt-get install ttyrec使用ttyrec #回车后开始录制exit #结束录制 或者 ctr + D查看录制cd ~ls | grep ttyrecord #查看文件 ttyrecord为默认生成的文件在主目录下ttyplay ttyrecord #播放录制信息ttyrec -a test #指定保存文件名转gifttygif安装git clone https://github.com/ichol原创 2021-08-13 15:09:17 · 239 阅读 · 0 评论 -
makefile终极教程
来源:微信公众号「编程学习基地」文章目录什么是makefile?makefile介绍makefile的规则一个示例第一个版本make是如何工作的makefile中使用变量命令的变量命令参数的变量隐晦规则通配符自动变量第二个版本伪指令函数文本处理函数字符串替换函数shell函数最终版本多目录makefile什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile..原创 2021-06-29 20:13:56 · 550 阅读 · 2 评论 -
GCC入门
gcc使用gcc编译过程选项名作用-o产生目标(.i、.s、.o、可执行文件等)-E只运行C预编译器-S告诉编译器产生汇编程序文件后停止编译,产生的汇编语言文件拓展名为.s-c通知gcc取消连接步骤,即编译源码,并在最后生成目标文件-w不产生任何警告信息-Wall使gcc对源文件的代码有问题的地方发出警告-Idir指定 include 包含文件的搜索目录-Ldir指定编译的时候,搜索的库的路径。-lLib在程序编译的原创 2021-06-29 20:11:31 · 294 阅读 · 1 评论 -
Linux下GCC超详细讲解
来源:微信公众号「编程学习基地」文章目录什么是GCC安装命令gcc和g++的区别gcc编译过程gcc常用参数库的介绍生成静态库使用静态库生成动态库(共享库)使用动态库方法一(不推荐)方法二(临时环境变量)方法三(配置用户环境变量)方法四(配置系统环境变量)总结静态库的优缺点动态库的优缺点什么是GCCGCC原名为 GNU C语言编译器(GNU C Compiler)GCC(GNU Compiler Collection,GNU编译套件)是由GNU开发的编程语言编译器。安装命令sudo apt..原创 2021-06-29 20:10:10 · 1946 阅读 · 1 评论 -
waitpid函数详解+应用示例
来源:微信公众号「编程学习基地」文章目录waitpid函数的使用waitpid()函数定义参数详解使用示例waitpid函数的使用当用fork启动一个新的子进程的时候,子进程就有了新的生命周期,并将在其自己的地址空间内独立运行。但有的时候,我们希望知道某一个自己创建的子进程何时结束,从而方便父进程做一些处理动作。waitpid()函数定义先来看看waitpid函数的定义:#include <sys/types.h> #include <sys/wait.h>..原创 2021-06-01 20:39:32 · 12934 阅读 · 4 评论 -
Linux进程间通信-eventfd
eventfd是linux 2.6.22后系统提供的一个轻量级的进程间通信的系统调用,eventfd通过一个进程间共享的64位计数器完成进程间通信,这个计数器由在linux内核空间维护,用户可以通过调用write方法向内核空间写入一个64位的值,也可以调用read方法读取这个值。#include <unistd.h>#include <iostream>#include <sys/wait.h>#include <sys/eventfd.h>#i.原创 2021-05-27 15:37:08 · 220 阅读 · 0 评论 -
printf打印彩色字符,还能闪烁!
文章目录Printf不一样的玩法颜色代码:ANSI控制码:输出特效格式控制:光标位置等的格式控制:示例颜色如下:Printf不一样的玩法在使用linux终端命令的时候,我们可以看到像more命令,它的显示方式与一般的字符串不同,是用了反显。同样,linux C下printf还有很多其他不常见的格式化输出形式。本文主要为你盘点这些形式。先看下效果:代码:#include<stdio.h>int main(){ printf("\033[32;5m 字符串闪耀\033[原创 2021-03-01 00:04:03 · 1485 阅读 · 3 评论 -
GCC全知全解
什么是GCCGCC原名为 GNU C语言编译器(GNU C Compiler)GCC(GNU Compiler Collection,GNU编译套件)是由GNU开发的编程语言编译器。安装命令sudo apt-get insatll gcc g++注意安装版本要大于4.8.5因为4.8.5以后的版本才支持c++11标准查看版本gcc -vgcc --versiong++ -vg++ --versiongcc和g++的区别gcc和g++ 都是GNU (组织)的一个编译器。■误区一:原创 2020-12-20 16:59:28 · 1213 阅读 · 0 评论 -
网络编程外网通信
对于初学者而已,我们学习的网络编程(如TCP,UDP编程),我们通常都是在局域网内进行通信测试,有时候我们或者会想,我们现在写的内网网络数据和外网的网络数据有什么不同,我们内网的数据是如何走出外网的呢?公有 IP 和私有 IP 的区别首先,我们需要了解一下什么是公有 IP 和私有 IP ?公有地址(Public address):由 Inter NIC(Internet Network Information Center 因特网信息中心)负责。这些 IP 地址分配给注册并向Inter NIC提出申请原创 2020-11-23 00:34:19 · 796 阅读 · 0 评论 -
Linux获取系统时间
来源:微信公众号「编程学习基地」获取系统时间#include <sys/time.h>int gettimeofday(struct timeval *tv, struct timezone *tz);int settimeofday(const struct timeval *tv, const struct timezone *tz);struct timeval { time_t tv_sec; /* seconds */ suseconds..原创 2020-09-23 16:22:05 · 847 阅读 · 0 评论 -
常见网络服务器并发模型
文章目录单线程循环多线程/多进程单线程IO复用多线程/多进程IO复用多线程划分IO角色AIO协程近些年,随着互联网的大发展,高并发服务器技术也快速进步,从简单的循环服务器模型处理少量网络并发请求,演进到解决C10K,C10M问题的高并发服务器模型。本文结合自己的理解,主要以TCP为例,总结了几种常见的网络服务器模型的实现方式,优缺点,以及应用实例。单线程循环优点: 简单、易于实现 没有同步、加锁这些麻烦事,也没有这些开销缺点: 1、阻塞模型,网络请求串行处理转载 2020-09-16 22:06:26 · 895 阅读 · 0 评论 -
Linux学习四:Linux压缩解压命令总结
目录Linux zip 命令压缩zip文件解压zip文件其他linux tar命令打包压缩解压targzbz2对比Linux zip 命令实例:压缩服务器上当前目录的内容为xxx.zip文件压缩zip文件zip -r xxx.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.解压zip文件unzip file.zip #解压zip文件到当前目录unzip -o -d /home file.zip #-o:不提示的情况下覆原创 2020-06-07 12:12:04 · 456 阅读 · 0 评论 -
Linux学习三:Linux配置环境变量
目录配置环境变量配置环境变量创建并且写一个脚本 touch test.sh gedit test.sh#!/bin/bashfor((i=0;i<10;i++));do echo "test.sh" doneexit 0;给运行权限 chmod ugo+x test.sh运行该脚本 ./test.sh //运行无误 cd .. ./test....原创 2019-11-03 15:05:28 · 215 阅读 · 0 评论 -
Linux笔记二:Linux文件操作
目录一、linux路径相对路径绝对路径二、文件操作新建文件复制文件删除文件移动文件查看文件查看文件类型三、vim使用编辑文件普通模式下的操作:插入模式下的操作命令行模式下一、linux路径切换目录 cd 路径相对路径 cd ../../user/local/bin命令功能.当前目录…上级目录-上一次所在目录~用户的home目录...原创 2019-11-03 15:01:09 · 509 阅读 · 0 评论 -
Linux笔记一:Linux基本命令
Linux基本命令命令行操作快捷键按键作用ctrl + d键盘输入结束或退出终端ctrl + s暂停当前程序,暂停后按下任意键恢复运行ctrl + z将当前程序放到后台运行,恢复到前台为命令fgctrl + a将光标移至输入行头,相当于home键ctrl + k删除从光标所在位置到行末ctrl + PgUp将终端显示向上滚动...原创 2019-11-03 14:52:38 · 257 阅读 · 0 评论