
Linux
文章平均质量分 61
石小浪♪
时间在溜,年龄在长,懂得多了,看得透了,快乐少了,焦虑多了,可能这就是长大的代价吧! 联系方式qq: 1364880841
展开
-
Linux C/C++之线程基础
Linux C/C++之线程基础(线程同步实现---超详细)原创 2022-04-23 14:37:28 · 2495 阅读 · 0 评论 -
Linux C/C++之IO多路复用(aio)
Linux C/C++之IO多路复用(aio)原创 2022-04-18 06:00:00 · 1844 阅读 · 15 评论 -
Linux C/C++之IO多路复用(poll,epoll)
Linux C/C++之IO多路复用(poll,epoll)原创 2022-04-11 22:46:34 · 1883 阅读 · 5 评论 -
Linux C/C++之IO多路复用(select)
Linux C/C++之IO多路复用(select)原创 2022-04-06 15:05:11 · 3657 阅读 · 6 评论 -
Linux C/C++之TCP / UDP通信
Linux/C语言实现TCP/UDP普通通信以及文件传输(最详细的步骤)原创 2022-03-27 22:06:17 · 6370 阅读 · 4 评论 -
Linux c/c++之IPC进程间通信
LinuxIPC技术: 内核进程通信(Inter Process Communication)原创 2022-03-23 22:57:40 · 3927 阅读 · 3 评论 -
Linuxc/c++之信号基础
Linux c之信号的基础使用原创 2022-03-16 04:00:00 · 2495 阅读 · 1 评论 -
Linux c/c++进程间通信(1)
1. 进程间通信的概念进程间通信是指不同的进程之间进行信息的传递1. 同一主机上的进程通信父子进程之间非父子进程之间2.不同主机上的进程通信(网络通信)2. 普通文件通信父子进程之间可以直接通过文件描述符号(fd)直接进行通信示例: 父进程写文件,子进程读取文件#include <stdio.h>#include <s...原创 2022-03-07 15:31:52 · 1571 阅读 · 0 评论 -
Linux c/c++进程之僵尸进程和守护进程
1. 僵尸进程1.1 僵尸进程的定义:父进程创建了子进程,而父进程先于子进程结束,子进程的资源没有被释放,就会变成僵尸进程,持续占用系统资源1.2 僵尸进程的解决办法子进程在结束之前会向父进程发送SIGCHLD信号,父进程接收到信号之后,先回收子进程资源,然后父进程自己再结束想要防止僵尸进程的情况出现,可以在父进程中写一个wait函数(或者waitpid函数)等待子进程发送的SIGCHLD信号无wait()函数的情况:#includ...原创 2022-03-05 23:12:11 · 2083 阅读 · 2 评论 -
Linux c/c++之进程的创建
方式一: 使用system函数特点: 当进程被创建之后,当前进程不再执行(处于挂起状态)待被创建进程执行结束之后当前进程继续执行#include <stdio.h>#include <unistd.h>#include <stdlib.h>int main(){ printf("先休息再工作\n"); sleep(5); for (int i = 0; i < 5; ++i) { printf("子进程pid:%d\n",getpi原创 2022-03-04 22:51:26 · 6663 阅读 · 0 评论 -
Linux c/c++之进程基础
进程的定义运行中的程序(必须是运行之中的程序) 不在运行之中的程序只能被称为可执行的程序文件 进程是操作系统资源调度的基本单位 线程是操作系统调度的基本单位 内存的最小管理单位 比特位(bit) 内存的最小管理单位 字节(byte)资源: 内存 fd(文件描述符) cpu时间片 等等...进程的组成数据: 全局变量 静态变量(已初始化,未初始化) 只读变量 代码: 进程的源代码 堆栈: 普通变量...原创 2022-03-03 22:46:03 · 625 阅读 · 0 评论 -
Linux c/c++文件虚拟内存映射
1. 使用虚拟内存映射操作文件可以大大提高向文件之中写入数据的速率2. 文件映射虚拟内存编程模型 **文件写入模型** 打开文件 open() 修改文件大小 ftruncate() 挂载映射 mmap() 使用虚拟内存 指针方...原创 2022-03-03 12:19:12 · 1080 阅读 · 0 评论 -
Linux c/c++之文件类型的判断
Linux c/c++之目录文件与普通文件的判断#include <stdio.h>#include <unistd.h>#include <fcntl.h>#include <sys/stat.h>int main(int argc,char* argv[]){ struct stat st = {0}; int ret = stat(argv[1],&st); if(ret){ printf("获取文件%s状态失败!\n",原创 2022-03-01 23:02:23 · 724 阅读 · 3 评论 -
Linux c/c++文件移动
Linux c/c++文件移动命令方式实现文件移动//文件移动(命令方式)#include <stdio.h>#include <stdlib.h>int main(int argc, char* argv[]){ char buff[256] = {0}; sprintf(buff,"mv %s %s",argv[1],argv[2]); system(buff); return 0;}文件操作方式实现文件拷贝//文件移动,文件操作方式#includ原创 2022-01-25 18:22:54 · 2835 阅读 · 0 评论 -
Linux c/c++之文件拷贝
Linux c/c++之文件拷贝命令方式进行文件拷贝#直接使用system()函数通过命令的方式拷贝文件#cp 路径+旧文件名 路径+新文件名//文件拷贝(直接使用命令方式拷贝)#include <stdio.h>#include <stdlib.h>int main(int argc,char* argv[]){ char buff[256] = {0}; sprintf(buff,"cp %s %s",argv[1],argv[2]); system(原创 2022-01-25 17:12:49 · 5351 阅读 · 0 评论 -
Linux c/c++文件的基本操作
Linux c/c++文件的基本操作文件的创建以及写入数据#include <stdio.h>#include <fcntl.h>#include <unistd.h>typedef struct student{ int id; char name[20]; int age; float score;}STU;int main(){ //以只写的方式打开文件,如果文件不存在就创建文件 int fd = open("1.txt",O_WRON原创 2022-01-22 23:03:54 · 1832 阅读 · 0 评论 -
Linux c/c++之makefile的基础使用
Linux c/c++之makefile的基础使用makefile之基础#目标:依赖main.exe:main.o add.o subtract.o ride.o gcc main.o add.o subtract.o ride.o -o main.exemain.o:main.c gcc -c main.c -o main.oadd.o:add.c gcc -c add.c -o add.osubtract.o:subtract.c gcc -c subtract.c -o subtr原创 2022-01-22 19:10:59 · 1240 阅读 · 0 评论 -
Linux c/c++之多文档编译
Linux c/c++之多文档编译首先创建一些文件//main.c文件#include <stdio.h>#include "add.h"#include "subtract.h"#include "ride.h"int main(){ int a = 0; int b = 0; printf("请输入两个整数:\n"); scanf("%d%d",&a,&b); printf("加法: %d\n",add(a,b)); printf("减法:原创 2022-01-22 15:18:22 · 1035 阅读 · 0 评论 -
程序从源代码到可执行程序
程序从源代码到可执行程序所要经过的步骤语言的分类:解释性语言解释性语言 -通过编译器-> 可执行程序文件(机器语言) 包括(库(动态库,静态库))C C++ java C# objective-c等等脚本语言源代码就是可执行程序文件shell javascript python等超文本语言HTMLUbuntu共享文件夹的默认位置cd /mnt/hgfs/程序从源代码到可执行程序中间经历的步骤预处理预处理指令的执行 宏的展开(简单的替换)gcc原创 2022-01-20 23:51:31 · 3599 阅读 · 0 评论 -
Ubuntu安装gcc 以及g++
Ubuntu安装gcc 以及g++针对于无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?#安装gcc、c++编译器以及内核文件apt install yumyum -y install gcc gcc-c++ kernel-devel 不出意外的话可以直接安装,但是,可是,我偏偏出了意外然后我反手就是一波百度解决了问题sudo rm /var/cache/apt/archi原创 2022-01-20 23:15:50 · 883 阅读 · 0 评论 -
Ubuntu修改设备名称
#首先使用su切换到root权限下#使用命令进入Ubuntu编辑器进行修改设备名称sudo gedit /etc/hostname#然后修改在输入命令时可见的设备名称sudo gedit /etc/hosts最后重启设备即可原创 2022-01-17 23:47:04 · 1737 阅读 · 0 评论