自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Liunx树莓派(ARM)开发篇—linux库(一)分文件编程

Liunx树莓派开发篇—分文件编程 分文件编程 有时一个项目需要实现很多模块功能,如果把这些模块代码都塞进main函数里,会显得程序臃肿,不美观。针对这一现象,可引入分文件编程分文件编程就是将主函数与各模块函数分离成不同的.C文件,同时新建一个.h文件用于存放各模块函数的声明,在主函数中调用.h文件。分文件能使程序功能责任划分,方便调试,主程序简洁 例子 实现两个整数的加减乘除。 以加法为例 a.创建.h文件,用于声明函数 int jiafa( int a, int b); b.创建.c文件,编写函数代码

2021-02-22 12:46:50 163

原创 Liunx树莓派刷机后一般流程

Liunx树莓派刷机后一般流程 1.配置根目录config和cmdline文件 2.入网 输入指令 sudo nano /etc/wpa_supplicant/wpa_supplicant.conf 修改 ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=CN network={ ssid="你的无线网名字" psk="密码" key_mgmt=W

2021-02-22 12:33:46 133

原创 Liunx系统编程篇—进程通信(五)信号

Liunx系统编程篇—进程通信(五)信号 原理 对于Linux,信号是软中断,例如下课铃响了,老师要停止讲课。许多重要的程序都需要处理信号。 信号,为 Linux 提供了一种处理异步事件的方法。比如,终端用户输入了ctrl+c来中断程序,会通过信号机制停止一个程序。 概述 每个信号都有一个名字和编号,这些名字都以“SIG”开头,例如“SIGIO ”、“SIGCHLD”等等。 信号定义在**signal.h头文件中,信号名都定义为正整数。 具体的信号名称可以 使用kill -l**来查看信号 的名字以及序号,

2021-02-16 11:44:58 323

原创 Liunx系统编程篇—进程通信(四)共享内存

Liunx系统编程篇—进程通信(四)共享内存 共享内存(Shared Memory),指两个或多个进程共享一个给定的存储区。 特点共享内存是最快的一种 IPC,因为进程是直接对内存进行存取。因为多个进程可以同时操作,所以需要进行同步。信号量+共享内存通常结合在一起使用,信号量用来同步对共享内存的访问。 大概的步骤 1、创建共享内存 2、进程A连接共享内存,写入数据 3、进程A断开连接 4、进程B连接共享内存,读取数据 5、进程B断开连接 6、释放公共内存 共享内存常用api #include <sys

2021-02-15 21:39:41 136

原创 Liunx系统编程篇—进程通信(三)消息队列

Liunx系统编程篇—进程通信(三)消息队列 消息队列 消息队列(message queue),是消息的链接表,存放在内核中。一个消息队列由一个标识(即队列ID)来标识。 特点 (1)消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级(链表存放的为结构体)。 (2)消息队列独立于发送与接收进程。进程终止时,消息队列及其内容并不会被删除(管道是读完就消失),除非销毁队列。 (3)消息队列可以实现消息的随机查询,消息不一定要以先进先出的次序读取(链表的特性),也可以按消息的类型读取。 (4)没有固定

2021-02-14 17:40:09 116

原创 Liunx系统编程--进程通信(二),命名管道

Liunx系统编程–进程通信(二),命名管道 特点 FIFO可以在无关的进程之间交换数据,与无名管道不同。 FIFO 有路径名(无名管道没有)与之相关联,它以一种特殊设备文件形式存在于文件系统中。 管道中的数据被读走就没了,同时保持FIFO先进先出的特点。 #include <sys/stat.h> #include <sys/types.h> int mkfifo(const char *pathname, mode_t mode); 返回值:成功返回0,出错返回-1 mod

2021-02-14 12:48:06 144

原创 Liunx系统编程--进程通信,无名通信(一)

Liunx系统编程–进程通信(一),创建无名管道 IPC 进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息,方式通常 有管道(无名管道和命名管道),信号量,消息队列,共享存储,Socket,Streams等。其中Socket,Streams支持不同主机上的两个进程IPC。 管道通信原理 1.管道,通常是指无名管道,是UNIX系统IPC最古老的形式,通常有以下特点 它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。 它只能用于

2021-02-06 20:20:15 104

原创 Linux下system () 函数详解简介

Linux下system (),popen 函数详解简介 转载 执行shell 命令) 相关函数 fork,execve,waitpid,popen 表头文件 #include<stdlib.h> 定义函数 int system(const char * string); 函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号

2021-02-02 16:57:36 304

原创 Linux系统编程篇进程三进程退出

Linux系统编程篇进程四进程退出wait,waitpid 正常退出 main函数调用return 进程调用exit(),标椎c库 进程调用_exit()或者Exit(),属于系统调用 进程最后一个线程返回,调用pthread_exit 异常退出 调用abort 当进程收到某些信号时,如crlt+c 最后一个线程对取消(cancellation)请求作出响应 不管进程如何终止,最后都会执行内核中的同一段代码。这段代码为相应进程关闭所有打开描述符,释放它所使用的存储器等。对上述任意一种

2021-02-02 16:56:18 117

原创 Linux下system () 函数详解简介

Linux下system (),popen 函数详解简介 转载 执行shell 命令) 相关函数 fork,execve,waitpid,popen 表头文件 #include<stdlib.h> 定义函数 int system(const char * string); 函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号

2021-02-02 16:55:47 995

原创 vfork函数的用法和(fork)的区别

Linux系统编程篇进程三vfork函数的用法和(fork)的区别 1.vfork直接使用父进程存储空间,不拷贝 2.vfork保证子进程先运行,当子进程调用exit后,父进程执行 // fork #include <sys/types.h> #include <unistd.h> #include <stdio.h> int main() { pid_t pid; pid=fork(); if(pid>0){

2021-02-02 16:54:59 129

原创 Linux系统编程篇二进程的创建(fork),过程发生了什么

Linux系统编程篇进程二的创建(fork),过程发生了什么 参考原文地址 fork //头文件 #include <sys/types.h> #include <unistd.h> //函数声明 pid_t fork(void); //返回值 (成功)返回两次pid 返为回值为0,代表当前进程是子进程 返回值为非负数,代表当前进程为父进程 (失败),返回-1 #include <sys/types.h> #include <unistd.h> #i

2021-02-02 16:53:11 402

原创 Linux系统编程篇—进程(概念)相关的问题

Linux系统编程篇—进程(概念)相关的问题 1.什么是程序,什么是进程,又什么区别? 程序是静态的概念, gcc xxxx.c -o pro,磁盘中生成的pro文件,叫做程序 进程的则是正在运行的程序(动态的概念) 2.如何显示进程 ps (显示部分) ps -aux (显示全部) ps -aux|grep init (精确查找 有init的) top 指令,类似Windows中的任务管理器 3.什么是进程表示符? 每一个进程都有一个非负整数表示唯一的ID,pid(类似我们的

2021-02-02 16:52:48 75

原创 fopen,fwrite,fread,的详细用法.....

fopen,fwrite,fread,的详细用法 #include <stdio.h> FILE *fopen(const char *pathname, const char *mode); FILE *fdopen(int fd, const char *mode); FILE *freopen(const char *pathname, const char *mode, FILE *stream); 返回值 ,成功为文件指针,失败为NULL //pathname :路径 //mode

2021-01-30 22:48:46 375 1

原创 Linux系统编程篇(文件)编程操作四 文件操作小应用修改配置文件

Linux系统编程篇(文件)编程操作四 文件操作小应用修改配置文件 用到函数strstr 头文件 #include <string.h> //函数原型 char *strstr(const char *haystack, const char *needle); haystack :大的字符串 need1e :你要查找的字符串 RETURN VALUE 返回值 These functions return a pointer to the beginning of the

2021-01-30 22:47:30 65

原创 fopen和open的区别

fopen和open的区别 原文:https://blog.csdn.net/u014379540/article/details/52388804?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPa

2021-01-30 22:44:40 198

原创 Linux系统编程篇(文件)编程操作三 文件操作小应用cp指令

Linux系统编程篇(文件)编程操作三 文件操作小应用cp指令 cp cp text1.c text2.c // 复制原文件text1.c 为text2.c cp的思路 1.打开text1.c,并读取内容到buf(缓冲) 2.创建text2.c,将buf写入到text2.c 3.关闭两个文件 过程 利用特性 include <stdio.h> int main(int argc,char **argv) { printf("参数的总数:%d\n",argc);

2021-01-30 22:43:44 98

原创 Linux系统编程篇(文件)编程操作二 文件操作原理

Linux系统编程篇(文件)编程操作二 文件操作原理 文件描述符 对于内核而言,所有打开文件操作都由文件描述符(非负整数)引用。当打开一个现存文件或者创建一个新文件时,内核相进程返回一个文件的一个描述符。读写文件时,用open和create返回的文件描述符标识该文件,作为参数传递给read和write。 int fd; char buf[128]; char read[128]; fd=open("./file",ORDWR); write(fd,buf,strlen(buf)); read(fd,re

2021-01-30 22:42:56 128

原创 Linux系统编程篇(文件)编程操作 一创建,打开,写入,读取,光标(lseek)

open 函数参数说明 // open的头文件 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); int creat(const char *pathname, mode_t mode); //

2021-01-28 14:26:11 218

空空如也

空空如也

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

TA关注的人

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