自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

原创 Linux三剑客之-sed

linux三剑客在实际项目中有着广泛的应用。sed 命令用于增删改查;gawk用于格式化输出,提高报告可读性;grep 常用于搜索文件内容。有必要对三剑客进行简单的归纳和总结。本片文件介绍sed编辑器。

2023-12-13 21:05:13 84

原创 多重登录环境的七个基本终端窗口

Linux的七个基本终端窗口

2023-07-22 13:38:22 157

原创 shell 脚本中类似添加断点的功能

shell 中实现类似断点的功能

2023-03-17 14:04:59 468 1

原创 行楷练习5 回折撇、连撇

回折撇、连撇

2023-02-02 22:33:46 310

原创 行楷练习4 短撇、复钩撇

短撇、复钩撇

2023-02-02 22:31:35 121

原创 行楷练习3 复钩竖、连竖

复钩竖、连竖

2023-02-02 22:29:41 79

原创 行楷练习2 横连点、纵连点、附钩横、连横

横连点、纵连点、附钩横、连横

2023-02-02 22:26:36 108

原创 行楷练习1 左点、右点、横两点、纵两点

左点、右点、横两点、纵两点

2023-02-02 22:23:10 103

原创 学习shell与shell script 02_vim 的保存恢复与打开时的警告信息

vim异常处理

2023-01-25 15:26:28 1270

原创 学习shell与shell script 01_vi与vim

vi和vim介绍

2023-01-23 18:24:07 749

原创 QXDM 存储log的方法

QXDM 存储log

2022-10-13 11:20:01 848

原创 向日葵远程控制

向日葵远程控制

2022-10-13 09:38:05 605

原创 Linux系统编程 103 setitimer函数

setitimer函数

2022-10-11 09:04:55 118

原创 如何使用QXDM 的1477项 转化utc时间

如何使用QXDM 的1477项 转化utc时间

2022-10-08 15:20:53 485

原创 Linux系统编程 102 alarm函数

Linux系统编程 alarm函数

2022-09-30 09:01:08 335

原创 如何让linux终端#之前不显示路径

如何让linux终端#之前不显示路径

2022-06-30 01:03:50 227

原创 shell编程01_Shell基础

Shell 介绍shell解释器切换常用的shell解释器

2022-06-30 00:29:46 187

原创 Linux驱动开发 2 Linux应用程序和驱动程序的接口

学习笔记驱动程序有很多,LED KEY CAMERA 的驱动程序接口都是标准的:open read writeopen read write 会通过swi指令来触发异常。内核的swi异常处理函数中,根据文件信息找到相应(比如led )的驱动程序文件和驱动程序怎么建立联系?(open - led_open)先不讲。图2_1Linux的驱动程序可以使用MCU的驱动程序的经验你的应用程序必须使用open read write驱动必须提供类似led_open led_rea...

2022-05-10 00:04:11 442

原创 Linux系统编程 101 kill 函数和kill命令

信号的产生终端按键产生的信号Ctrl + c -> 2) SIGINT(终止/中断) INT -InterruptCtrl + z -> 20)SIGSTP(暂停/停止) T - TerminalCtrl + \ -> 3) SIGQUIT(退出) 硬件异常产生信号除0操作 -> 8) SIGFPE(浮点数异常) 非法访问内存 -> 11)SIGSEGV(段错误)总线错误 -> 7) SIGBUS$cat k...

2022-05-02 14:08:34 629

原创 Linux系统编程 100 信号四要素和常规信号一览

信号的编号可以使用kill -l 命令查看当前系统可使用的信号有哪些$kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTER...

2022-05-01 17:18:26 377

原创 Linux驱动开发 1 单片机和linux程序的分层

Linux驱动开发快速入门学习学习笔记单片机和linux程序的分层main(){ //初始化所有的外围设备 flash接口 和 系统时钟 //这些硬件初始化,很多硬件厂商都帮你做好了。 //不关心 while(1) { 。。。 //我们要做的事情:根据业务逻辑去操作硬件。 //通过HAL 库或者直接通过寄存器去控制寄存器。 }}库函数GPIO_ReadPin(GPIO_TypeDef...

2022-02-18 01:15:53 455

原创 Linux系统编程 99 信号屏蔽字和未决信号集

学习笔记阻塞信号集(信号屏蔽字)概念将某些信号加入集合,对他们设置屏蔽,当屏蔽某个信号后,再收到该信号,该信号的处理将推后(解除屏蔽后)未决信号集概念1.信号产生,未决信号集中描述该信号的位立刻翻转为1,表信号处于未决状态。当信号被处理对应位翻转回0.这一时刻往往非常短暂。2.信号产生后由于某些原因(主要是阻塞)不能递达,这类信号的集合称之为未决信号集,在屏蔽解除前,信号一直处于未决状态。阻塞信号集和未决信号集都在PCB中截图1未决信号集和信号屏蔽字的本质都是位...

2022-02-17 23:42:35 881

原创 Linux系统编程 98 信号的相关的概念

学习笔记与信号相关的事件和状态产生的信号:1.按键产生ctrl + c 终止ctrl+z 挂起,暂停,跑到后台,通过fg恢复前台来ctrl+\ 终止例子:$cathellohello^C$2.系统调用产生kill raise abort后面再解释3.软件条件产生如定时器alarmsleep函数就是这个case4.硬件异常产生非法访问内存,除0(浮点数例外),内存对齐出错(总线错误)。5.命令产生kill命令递达:递送并且到...

2022-02-02 16:48:16 1318

原创 Linux系统编程 97 信号的概念和机制

学习笔记信号的概念信号在我们的生活中随处可见,如:古代战争中的摔杯为号;现代战争中的信号弹;体育比赛使用的信号枪...共性:1. 简单2.不能携带大量信息3.满足某个特设条件才发送信号是信息的载体,linux/unix环境下,古老、经典的通信方式,现在依然是主要的通信手段。unix早期就提供了信号机制,但是不可靠,信号可能会丢失。Berkeley和AT&T,都对信号模型做了更改,增加了可靠信号机制,但是彼此不兼容。POSIX.1对可靠信号例程进行了标准化。信号的机制:重

2022-02-02 16:10:42 1239

原创 Linux系统编程 87 文件用于进程间通信

学习笔记文件完成进程间通信下面代码不需要你会写$cat fileforprocesscommuncation.c#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<errno.h>#include<sys/wait.h>#include<fcntl.h>//O_RDWRvoid sys_er

2022-01-17 23:18:44 203

原创 通过两点经纬度确认精度

vs c++ 下开发的程序:#include"math.h"#include"stdio.h"#include"stdlib.h"#define PI 3.1415926#define EARTH_RADIUS 6378.137double radian(double d){ return d*PI/180.0;}int main(int argc, char *argv[]){ double longitudeA =atof(argv[1]); double lat.

2022-01-17 10:03:26 317

原创 Linux系统编程 80 进程间的通信方式

学习笔记在linux环境下,进程地址空间相互独立的,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问。要交换数据,必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷贝到内核缓冲区,进程2再从内核缓冲区把数据拷贝走,内核提供的这种机制称为进程间的通信。IPC(interprocesscommunication).进程地址空间是独立的。父进程和子进程之间搭建桥梁。这个桥梁就是进程间通信IPC进程间通信的原理:0g-

2022-01-16 21:46:48 370

原创 Linux系统编程 85 兄弟进程通信

学习笔记使用创建n个子进程的模型,创建兄弟进程,使用循环因子i标示。注意管道的读写行为。兄:ls弟:wc -l父:等待子进程回收$cat brothercommunication.c#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<errno.h>#include<sys/wait.h>void s

2022-01-16 21:24:58 531

原创 Linux系统编程 81 管道的性质

学习笔记管道的概念:管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据的传递。调用pipe系统函数即可创建一个管道。我们使用mkfifo f1fifo是队列,而管道实为环形队列。$mkfifo fl$lltotal 28drwxrwxr-x 7 ubuntu ubuntu 4096 1月 16 20:39 ./drwxr-xr-x 15 ubuntu ubuntu 4096 1月 14 23:06 ../drwxrwxr-x 2 ubuntu ub...

2022-01-16 20:42:41 526

原创 Linux系统编程 82 管道的基本用法

学习笔记pipe函数用于创建并打开管道管道有两个口。#include <unistd.h>int pipe(int pipefd[2]);参数1:pipefd[0] :读端pipefd[1] :写端返回值:成功:0失败:-1 errno管道的写端: 是指进程写到管的的端口管道的读端: 是指进程从管道读取的的端口管道的读写端个人感觉是站在进程角度来描述。父进程创建管道的时候,相当于打开一个读端,一个写端父进程创建子进程的时候,父子进程共享文件描述符。子

2022-01-14 23:14:12 550

原创 Linux系统编程 84 父子进程通信

学习笔记$lsmakefile mypipe mypipe.c$ls |wc -l3父进程实现ls子进程实现wc -l利用wc指令我们可以计算文件的Byte数、字数、或是列数.dup2execpipels 原来输出到屏幕,现在要把它输出到管道的写端 dup2(fd[1],STDOUT_FILENO);??dup2不是很熟,需要在学习下!wc -l 将结果写到屏幕$wc -lnihaldfsdfsdfsdfwef4可以看出来:$wc -l 命令 ..

2022-01-14 22:35:11 476

原创 Linux系统编程 83 管道读写行为

学习笔记APUE这本书内容读管道1.管道中有数据,read返回实际读到的字节数2.管道没有数据:1)判断管道的写端是否被全部关闭,全部关闭,read返回为02)管道的写端没有全部被关闭,read阻塞等待。(不久的将来,可能有数据传达,此时会让出cpu)写管道1.管道读端全部被关闭,进程异常终止(也可以使用捕捉SIGPIPE信号,使进程不终止)2.管道读端没有全部被关闭:1)管道已满,write阻塞2)管道未满,write将数据写入,并返回实际写入的字节数。程序: 父进程一上来就跑

2022-01-14 20:58:16 426

原创 makefile

常用的makefile文件src=$(wildcard ./*.c) target=$(patsubst %.c,%,$(src)) myArgs= -Wall -gAll:${target}%:%.c gcc $< -o $@ $(myArgs)clean: -rm -rf $(target) a.out .PHONY: clean All

2022-01-14 20:27:16 93

原创 Linux系统编程 75 -wait回收子进程

学习笔记面试经常问到什么是僵尸进程,孤儿进程, 守护进程守护进程后面再讲。父进程回收子进程PCB,如何回收子进程资源?通过wait 函数和 waitpid 函数来处理wait 函数每一进程结束之后,都会在内核残留PCB。PCB 残留的目的是为了方便获取它的终止状态。父进程调用wait 函数可以回收子进程终止信息,该函数有三个功能:1.阻塞等待子进程退出 表示调用函数之后,一直等待子进程退出,而且是死等。2.回收子进程残留资源3.获取子进程结束状态(退出原因)#in..

2022-01-07 00:44:13 562

原创 Linux系统编程 74 孤儿进程和僵尸进程

Linux系统编程 74 孤儿进程和僵尸进程学习笔记孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为init进程,称为init进程领养了孤儿进程。init进程会去接替父进程去管理子进程。主要是进程回收!正常情况下,是父进程对子进程进行回收。查看demo代码$cat orphanprocess.c#include<unistd.h>#include<stdlib.h>#include<stdio.h>int ma.

2022-01-07 00:06:16 1127

原创 tail -f/ tail -F /control +组合键

1. tail -f根据文件描述符进行追踪,当文件改名或被删除,追踪停止2.tail -F根据文件描述符进行追踪,当文件改名或被删除,如果再次创建相同的文件名,会继续追踪3.control 组合键暂停终端:【Ctrl】+【S】暂停终端。 S可能sleep继续终端:【Ctrl】+【Q】Q可能为quit 停止休眠终止执行:【Ctrl】+【C】挂起进程:【Ctrl】+【Z】清屏幕:【Ctrl】+【L】要将后台程序重新呼出 :fg %jobsnumber...

2021-12-31 16:28:38 284

原创 高通平台上无法呼出后台程序的问题

在乌班图下 ,可以支持下面三种1)fg 作业号2)%作业号3)fg %作业号但是我们调试高通平台的时候,只能用3)

2021-12-30 14:32:39 251

转载 进程间通信

进程间通信IPC(Inter-Process Communication)进程间通信,提供了各种进程间通信的方法。在Linux C编程中有几种方法(1) 半双工Unix管道(2) FIFOs(命名管道)(3) 消息队列(4) 信号量(5) 共享内存(6) 网络Socket...

2021-12-30 14:07:49 47

原创 Linux系统编程 52 文件目录rwx权限差异

学习笔记$ln -s /home/ubuntu/xxxxxeixxx/52quanxian/unlink.c unlink.soft$lltotal 20drwxrwxr-x 2 ubuntu ubuntu 4096 12月 25 10:48 ./drwxrwxr-x 11 ubuntu ubuntu 4096 12月 25 10:47 ../-rwxr--r-- 1 ubuntu ubuntu 178 12月 25 10:47 makefile*-rw-rw-r-- 1 ubu...

2021-12-25 15:54:25 597

原创 Linux系统编程 51 -link和unlink隐式回收

学习笔记link 函数用于创建硬链接创建硬链接实际上就是创建新的目录项。#include <unistd.h>int link(const char *oldpath, const char *newpath);第一个参数:源文件的路径第二个参数:要生成硬链接的路径使用link函数实现mv操作1. 先链接一个2. 删除源文件其中涉及的删除操作要用到的函数就是unlink#include <unistd.h>int unlink(const c

2021-12-25 10:44:17 1755

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除