Linux
文章平均质量分 63
linux学习
小李编程
尽管说是小菜鸟,但小菜鸟也要努力啊!
小菜鸟蜕变计划。
展开
-
yum换源出现的问题及解决方案
自己更换yum源碰到的问题原创 2024-07-26 16:01:04 · 312 阅读 · 0 评论 -
Linux 学习笔记之常用命令(一)
linux中常用的命令原创 2023-10-23 18:13:13 · 418 阅读 · 0 评论 -
Centos7的安装与模板机的制作
Centos7的安装、jdk安装、mysql安装、Hadoop集群环境搭建、Hive搭建原创 2022-12-31 15:21:11 · 1506 阅读 · 5 评论 -
centos下docker安装
centos下docker安装安装依赖设置yum仓库安装依赖:yum install -y yum-utils device-mapper-persistent-data lvm2设置仓库:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo安装dockeryum install docker-ce docker-ce-cli containerd.io启动并加入开机启原创 2021-12-10 20:43:47 · 2299 阅读 · 0 评论 -
树莓派开发
树莓派高阶开发课程1.ubuntu18.04版本安装让程序猿搭建环境太搞笑了,轻松easy!2.树莓派等芯片带操作系统的启动过程C51,STM32(裸机)---->C直接操控底层寄存器实现相关业务。 业务流程型的裸机代码 遥控灯: while(1) 垃圾桶:WemosD1 LOOP 恩智浦智能车: stm32X86,Intel windows启动过程: 电源 ---> BIOS-->windows内核-->C,D盘-->程序启原创 2021-11-02 19:27:03 · 279 阅读 · 0 评论 -
Linux下进程通信之简易聊天
Linux下进程通信学习linux已经有一段时间了,通过下边这个小项目来巩固一下所学知识。这是一个服务器与客户端进行通信的小练习,服务器处于开启状态,客户端进行连接,连接成功后,两者可以发送消息,双方都能收到对方的消息,实现一个小型聊天系统,可以有多个客户端,连接到服务器,也可以发送给服务器信息,目前做到的只是服务器与客户端的收发消息,客户端与客户端还不可以收发消息,在学习深入之后,再将代码进行优化。先来看一下运行效果下面的是服务器的代码#include<stdio.h>#incl原创 2021-10-19 19:12:03 · 234 阅读 · 0 评论 -
Linux互斥锁
Linux互斥锁(一)互斥量互斥量(mutex)从本质上来说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁后,任何其他试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所有在该互斥锁上的阻塞线程都会变成可运行状态,第一个变为可运行状态的线程可以对互斥量加锁,其他线程将会看到互斥锁依然被锁住,只能回去等待它重新变为可用。在这种方式下,每次只有一个线程可以向前运行。在设计时需要规定所有的线程必须遵守相同的数据访问规则。原创 2021-10-11 16:44:21 · 957 阅读 · 0 评论 -
快速学习C指针
C语言指针(一)各种指针的定义1.一个整型数 : int a;2.一个指向整型数的指针: int *a;3.一个指向指针的指针,它指向的指针指向一个整型数: int **a;4.一个有10个整型数的数组:int a[10];5.一个有10个指针的数组,每个指针指向一个整型数:int *a[10];6.一个指向有10个整形数的数组的指针:int (*a)[10];7.一个指向指针的指针,被指向的指针指向一个有10个整型数的数组:int (**a)[10];8.一个指向数组的指针,该数组有1原创 2021-10-10 20:06:30 · 749 阅读 · 0 评论 -
Linux(Centos)的rpm与yum
Linux(Centos)的rpm与yum1.查询已安装的rpm列表rpm -qa|grep xxx举例:看看当前系统, 是否安装了firefox指令:rpm -qa | grep firefoxrpm -qa :查询所安装的所有rpm软件包rpm -qa| more 或 rpm -qa| grep X [rpm -qa | grep firefox]rpm-q软件包名:查询软件包是否安装案例: rpm -q firefoxrpm-qi软件包名:查询软件包信息案例: rpm -原创 2021-10-08 09:52:08 · 199 阅读 · 0 评论 -
Linux线程
Linux线程进程与线程典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。进程是程序执行时的一个实例,是担当分配系统资源(CPU时间、内存等)的基本单位。在面向线程设计的系统中,进程本身不是基本运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。线程是操作系统能够进行运算调度的最小单位。它被包含在进程之原创 2021-10-07 20:14:29 · 72 阅读 · 0 评论 -
Linux信号量编程
Linux信号量编程信号量编程的一个小应用代码如下:#include<stdio.h>#include<sys/sem.h>#include<sys/types.h>#include<sys/ipc.h>#include<unistd.h>union semun{ int val; struct semid_ds *buf; unsigned short *array;原创 2021-10-07 19:23:46 · 237 阅读 · 0 评论 -
Linux信号编程
信号量编程信号低级编程实战通过信号量来kill进程代码:#include<stdio.h>#include<signal.h>void handler(int signum){ printf("get signum=%d\n",signum); switch(signum){ case 2: printf("SIGINT\n");原创 2021-10-06 17:08:37 · 337 阅读 · 0 评论 -
Linux之进程通信
Linux之进程通信管道编程实战无名管道:父进程进行写,子进程读。#include<stdio.h>#include<unistd.h>#include<string.h>#include<stdlib.h>#include<wait.h>int main(){ int fd[2]; int pid; char buf[128]; if(pipe(fd) == -1原创 2021-10-05 20:38:39 · 109 阅读 · 0 评论 -
Linux系统编程之进程
Linux系统编程之进程(一)进程的创建通过一个例子来对进程创建fork函数进行理解#include<stdio.h>#include<unistd.h>#include<sys/types.h>int main(){ pid_t pid; pid_t pid2; pid = getpid(); printf("Before fork:%d\n",pid); fork();原创 2021-10-04 12:08:27 · 464 阅读 · 0 评论 -
Linux文件编程之fputc,fgetc,feof函数的使用
Linux文件编程之fputc,fgetc,feof函数的使用通过一个例子来熟悉使用三个函数fputc函数原型int fputc(int c, FILE *stream);#include<stdio.h>#include<string.h>int main(){ FILE *fp; int i; char *str="I Love you the way you are!\n"; fp=fopen(".原创 2021-10-02 11:42:13 · 223 阅读 · 0 评论 -
Linux下标准C库打开创建文件读写光标移动
Linux下标准C库打开创建文件读写光标移动通过man 手册查阅函数原型:fopen函数原型:NAMEfopen, fdopen, freopen - stream open functionsSYNOPSIS#include <stdio.h> FILE *fopen(const char *pathname, const char *mode); FILE *fdopen(int fd, const char *mode); FILE *freopen(co原创 2021-10-02 10:42:33 · 199 阅读 · 0 评论 -
Linux文件编程练手项目
Linux文件编程练手项目已经存在配置文件,名称为TEST.config,其内容如下:SPEED=3LENG=5SCORE=9LEVEL=5现需要修改其内容,将SCORE的值修改为5通过man手册查阅strstr函数的使用,如下所示:NAMEstrstr, strcasestr - locate a substringSYNOPSIS#include <string.h> char *strstr(const char *haystack, const char *n原创 2021-10-01 17:00:33 · 229 阅读 · 0 评论 -
Linux下cp命令的代码实现(二)
Linux下cp命令的代码实现(二)上一篇说到代码有bug,那么bug在哪呢?细心的读者会发现,我在读取的时候传了固定的参数,也就是1024,只能读取1MB的内容,如果文件超出1MB,后边的内容就会拷贝不到,而上边也计算了文件的长度或大小,用size保存了,所以第一个bug解决方案便是将1024改为size。第二个bug是如果文件存在并且有内容的话,再次打开如果没有用O_TRUNC 的话,内容不清空,再次拷贝,之前的内容会存在,和最终要拷贝的内容不一致,解决方案是增加上O_TRUNC 将存在的文件中的内原创 2021-10-01 16:09:16 · 173 阅读 · 0 评论 -
Linux下cp命令的代码实现(一)
Linux下cp命令的代码实现cp命令的实现思路:1.打开原文件2.将原文件读取到缓存中3.打开(如果文件不存在则创建文件)目标文件4.将缓存中的内容写入到目标文件中5.关闭原文件与目标文件代码实现如下:#include<stdio.h>#include<stdlib.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd原创 2021-10-01 11:58:28 · 355 阅读 · 0 评论 -
Linux文件操作原理
Linux文件操作原理简述文件描述符:1.对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开一个现存文件或者创建一个新文件时,内核向进程返回一个文件描述符。当读写一个文件时。用open和creat返回的文件描述符标识该文件,将其作为参数传递给read和write。按照惯例,UNIX shell使用文件描述符0与进程的标准输入相结合,文件描述符1与标准输出相结合。STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO这几个宏代替了0、1、2这几个数。原创 2021-10-01 11:04:06 · 304 阅读 · 0 评论 -
Linux文件创建
Linux文件创建man 手册查阅open的使用方式,如下:NAMEopen, openat, creat - open and possibly create a fileSYNOPSIS#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h> int open(const char *pathname, int flags); int open(const char *path原创 2021-09-30 21:46:32 · 200 阅读 · 0 评论 -
Linux对文件读取操作读取不到内容的解决方案(二)
Linux下对文件的读取接上一篇对文件读取不到的解决方案二:通过man手册查找lseek,得到如下内容:NAMElseek - reposition read/write file offsetSYNOPSIS#include <sys/types.h>#include <unistd.h> off_t lseek(int fd, off_t offset, int whence);DESCRIPTIONlseek() repositions the f原创 2021-09-30 19:16:15 · 1601 阅读 · 0 评论 -
Linux对文件读取操作读取不到内容的解决方案(一)
Linux下对文件的读取操作linux下对文件的读取操作,像下面这样会读取不到内容,原因就是光标已经到内容的最后,再进行读取就会读不到内容。运行结果如图所示:代码如下:#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>#include<string.h>#include<st原创 2021-09-29 22:16:28 · 3296 阅读 · 0 评论 -
Linux中对文件进行读写操作
Linux对文件的操作linux下一切皆是文件,要学懂linux就要对linux的文件操作有深刻的认知。以下是对文件进行的读写操作。对文件的读:#include<stdio.h>#include<sys/stat.h>#include<fcntl.h>#include<sys/types.h>int main(){ int fd; fd = open("./file1",O_RDWR); if原创 2021-09-26 17:27:22 · 913 阅读 · 0 评论 -
Linux贪吃蛇小游戏
Linux下的贪吃蛇小游戏用c语言做个贪吃蛇小游戏最近在学习linux,通过做贪吃蛇小游戏来熟悉命令行的使用。以下是本游戏的源代码注意:在linux上是可以运行的用到了ncurse,也用到了线程。#include<curses.h>#include<stdlib.h>#define UP 1#define DOWN -1#define LEFT 2#define RIGHT -2struct Snake{ int row; int co原创 2021-09-26 10:14:04 · 264 阅读 · 0 评论 -
Linux命令的使用
linux命令的使用——以centos7为例1、案例:显示当前工作目录的绝对路径2.案例:查看当前目录的所有内容信息3.cd~或cd :回到自己的家目录,如root,cd~会到/root cd…回到当前目录的上一级目录4.创建一个目录/home/dog mkdir /home/dog5.rmdir删除的是空目录,不能删除非空目录,如果需要删除非空目录,需要使用rm –rf 要删除的目录6. 案例:在/home目录下创建一个空文件hello.txt7.案例1:将/home/h原创 2021-09-17 23:28:46 · 4788 阅读 · 0 评论