- 博客(36)
- 收藏
- 关注
原创 linux 进程通信
一 进程间通信1.1 概念进程间由于其资源都是相互独立的,所以想要实现进程间通信就必须找到他们共享的资源(内核资源),通过读写内核资源来实现,进程间的通信1.2 分类1> 传统通信方式无名管道有名管道信号2> IPC第五代通信消息队列共享内存信号量套接字(网络通信)1.3 前提1> 单工:通信双方,一方只能接收,另一方只能发送2> 半双工:通信双方,同一时刻,一方只能接收,另一方只能发送。
2023-07-17 18:10:06
65
原创 linux-----进程||线程控制编程
其中0~3G为用户空间,3-4G称为内核空间(也称为进程的共享空间-->后序进程间通信使用)在Linux程序中,fork()会产生一个和父进程相同的进程,但子进程之后多会exec调用,在执行fork之后、exec之前,两个进程使用的是相同的物理地址空间,进程控制块:pc程序计数器,进程的状态,进程ID,堆栈信息等。当父子进程有更改相应段的行为发生时,再为子进程相应的段分配物理空间。也就是说,两者的虚拟地址空间不同,但其对应的物理空间是相同的。子进程的代码段、数据段、堆栈都是指向父进程的物理地址空间,
2023-07-10 23:03:00
132
原创 linux
原型:ssize_t write(int fd, const void *buf, size_t count);头文件:ssize_t read(int fd, void *buf, size_t count);原型:off_t lseek(int fd, off_t offset, int whence);原型:char *fgets(char *s, int size, FILE *stream);1> 行缓冲(标准输入(文件描述符:0)和标准输出(文件描述符:1))
2023-07-07 23:17:42
58
原创 linux-----------文件IO
原型:ssize_t write(int fd, const void *buf, size_t count);如果buf的长度大于count的值,则写入count大小的字节。所谓文件IO指的就是操作系统提供支持的API接口,以对文件的输入和输出。7 杂项(包括宏包和规范,如 man(7),groff(7))5> 文件描述符:是一个文件的代表,系统内部为结构体指针数组的下标。注意:如果buf的长度小于count的值,则会产生空洞文件。count:写入文件的字节个数(写入内存的最大字节个数)
2023-07-06 19:32:07
85
原创 linux-----静态库动态库的创建以及使用
L /home/hello/lib表示将/home/hello/lib目录作为第一个寻找库文件的目录,寻找的顺序是:/home/hello/lib-->/lib-->/usr/lib-->/usr/local/lib。-I /home/hello/include表示将/home/hello/include目录作为第一个寻找头文件的目录,寻找的顺序是:/home/hello/include-->/usr/include-->1.可执行文件的大小: 静态库 > 动态库 ---> 内存的使用效率。
2023-07-06 19:23:27
102
原创 Linux-----------基本操作
inet6 地址: fe80::7155:9548:3b59:9433/64 Scope:Link。ens33 Link encap:以太网 硬件地址 00:0c:29:be:7c:6d。接收数据包:565 错误:0 丢弃:0 过载:0 帧数:0。发送数据包:262 错误:0 丢弃:0 过载:0 载波:0。接收数据包:719 错误:0 丢弃:0 过载:0 帧数:0。发送数据包:719 错误:0 丢弃:0 过载:0 载波:0。inet6 地址: ::1/128 Scope:Host。
2023-07-03 19:23:09
79
原创 linux操作系统----简介
1991年芬兰的赫尔辛基大学的Linus Torvalds(拖瓦兹,莱纳斯),起了Multics计划,让主机可以达成300个终端。Ken Thompson(汤姆森.肯),1969年8月,这哥们趁老婆不。他使用bash,gcc等工具写了一个内核程序,可以在386机器上运行,室的流传与数次改版,成为如今用C语言写成的Unics核心,也就。进程管理(程序的一次执行过程,进程的创建销毁调度等)由于汤姆森这哥们,写的这个系统是在太好用了,经过贝尔实验。2.ubuntu集成了大量的便捷的开发工具,易于开发,系统稳定。
2023-07-03 19:22:10
45
原创 嵌入式(c)运算符优先级
自增减,取反,非,指针运算符。算术运算符的乘,除,取余。关系运算符,判断是否相等。逻辑运算符,优先级左边高。位运算符,优先级左边高。关系运算符,判断大小。
2023-06-14 20:27:04
69
原创 嵌入式(c)字符串函数
*字符数组:char buf[32];所谓字符数组,就是由一堆字符组成的数据类型字符串:由一堆字符组成并且以\0结尾字符串也被称为特殊的字符数组*///用一堆字符初始化字符数组//只会写前10个字节写入数组中//用一个字符串初始化字符数组//%s:输出一个字符串,从以buf为首地址,向后输出,直到遇到\0结束/**/i++)return 0;
2023-06-09 19:33:52
100
原创 嵌入式(c)排序算法
从第二个元素开始,将后一个元素依次跟前面所有的元素进行比较,选择一个合适。的位置插入,然后再将第三个元素依次跟前面所有的元素进行比较,选择一个合适。第二趟排序,将次大值交换至数组的倒数第二的位置。3.传缺省的数组 int p[],int length。排序为例,如果前面的元素比后面大,则交换之。通过一趟排序后,最大值交换至数组的末尾。的位置插入,如此循环,最终序列将整体有序。1.传指针:int *p,int length。思路:从第一个元素开始,两两进行比较,以升序。传指针 + 数组的长度。
2023-06-09 17:50:08
132
原创 嵌入式学习(c)
printf("5分:%d个 2分:%d个 1分:%d个\n",i,j,k);\n",n,ret);设计一个函数,指定硬币总个数为n枚,列出所有满足条件的组合。在原数值的绝对值的基础上,连续进行除10运算,恰好在第n次除10后,结果为0。printf("1 ~ %d 之间有 %d 个1\n",n,ret);printf("%d 的二进制数有 %d 个1\n",n,ret);printf("差值为:%d\n", DiffValue);printf("请输入第一个日期:(以空格隔开):\n");
2023-06-07 20:57:47
155
原创 嵌入式(c)
在C中,除了8bit的char以外,还有16bit的short,32位的int,64位long,当然具体要由编译器决定,可以通过sizeof来获取不同类型在内存中占用的字节数。结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),联合体占用的内存等于最长的成员占用的内存。常见的字节顺序有两种:大端(Big-endian)和小端(Little-endian),当然还有其他字节顺序,但不常见,例如Middle Endian。源码:1001 1000-->-24。补码:1011 1101。
2023-06-05 19:04:57
78
1
原创 嵌入式(c)输入输出函数&算数运算符&逻辑运算符&关系运算符
m 设置输入的宽度,如果输入的内容超过设置的宽度,原型:int puts(const char *s);例如:printf(“a = %d\n”,a);原型:char *gets(char *s);头文件:#include 头文件:#include 原型:int putchar(int c);头文件:#include 头文件:#include 头文件:#include 原型:int getchar(void);
2023-06-02 20:25:40
122
原创 嵌入式(c)
##23.6.1(c学习)#include /*/*左值:可以被修改的值称为左值等号左边的值称为左值右值:不可以被修改的值称为右值等号右边的值称为右值*/int main(void){int a = 10;a = 20;//20 = a;return 0;}#include #if 0基本数据类型:在内存中有固定的大小整形数据: char 字符型 1个字节short 短整型 2个字节int 整形
2023-06-01 20:20:26
173
1
原创 从0到嵌入式开发工程师
①形式参数:在函数定义中出现的参数,可以看做是一个占位符,它没有数据,只能等到函数被调用时接受传递进来的数据,所以成为形式参数,简称:形参。②实际参数:函数被调用时给出的参数,包含实实在在的数据,会被函数内部的代码使用,所以被称为实际参数,简称:实参。//参与编译,例如:版本的选择(32位/64位),操作系统的选择(linux/unix/win)栈空间和静态区的空间的分配,将.i文件生成.s(汇编文件)栈空间和静态区的空间的分配,将.i文件生成.s(汇编文件)原型: 函数名(形参1,形参2,…
2023-06-01 19:25:47
39
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人