![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux点滴记录
只是为了记笔记
只是为了记笔记
展开
-
git push出现的问题与ssh相关
执行ssh-add时出现Could not open a connection to your authentication agent在执行 ssh-add ~/.ssh/id_ras 时发生此错,执行如下命令 ssh-agent bash然后再执行 ssh-add ~/.ssh/id_ras 即可。由于更新代码显示没有权限,不得不重置ssh1、删除.ssh文件夹下的文件2、$ git config --global user.name “用户名”$ git config --global.原创 2020-12-02 15:30:11 · 444 阅读 · 0 评论 -
bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory的解决方法
https://blog.csdn.net/youzhouliu/article/details/79051516转载 2020-11-27 10:40:46 · 211 阅读 · 0 评论 -
linux-ubuntu 修改环境变量
https://blog.csdn.net/zdw_zoro/article/details/78051905转载 2020-11-27 09:39:28 · 300 阅读 · 0 评论 -
c中数组大小不能用变量的一个解决办法
c中数组大小不能用变量的一个解决办法转载 2020-07-16 17:35:23 · 977 阅读 · 0 评论 -
atol和strtol的区别
atol和strtol的区别转载 2020-07-13 16:21:16 · 492 阅读 · 0 评论 -
使用 strtok 提取 ip (点分十进制)网段
struct net_addr_in{ unsigned char sin_addr[4];//IP地址 unsigned short sin_port;//端口 unsigned char reserve[2];};unsigned char *data; data = strtok(ipaddr, "."); if(data != NULL) server.sin_addr[0] = atoi(data); while(data = strtok(NULL, "."原创 2020-07-10 11:24:51 · 273 阅读 · 0 评论 -
strstr 提取字符串时,需要清除\n\r
data = strtok(cmd->sendcmd, “\n”);if(strstr(cmd->recvdata, data) == NULL)否则一直是NULL原创 2020-07-09 17:03:42 · 1022 阅读 · 0 评论 -
strstr(str1,str2)函数使用 出现问题解析
转载转载 2020-07-09 16:53:58 · 725 阅读 · 0 评论 -
枚举变量的循环取值
typedef enum { MODEM_CONNECT_BPS_1200 = 1200, MODEM_CONNECT_BPS_2400 = 2400, MODEM_CONNECT_BPS_4800 = 4800, MODEM_CONNECT_BPS_7200 = 7200, MODEM_CONNECT_BPS_9600 = 9600, MODEM_CONNECT_BPS_12000原创 2020-06-15 10:23:15 · 732 阅读 · 0 评论 -
union各字段共享一块内存,以及union的用途
https://www.cnblogs.com/shirishiqi/p/5416935.html一、union各字段共享一块内存typedef u nion {long i; int k[5]; char c;} DATE;sizeof(DATE) = 20DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是201、union中可以定义多个成员,union的大小由最大的成员的大小决定。2、union成员共享同一块大小的内存,一转载 2020-05-13 22:33:12 · 613 阅读 · 0 评论 -
浮点变量不可用“==” 或“!=” 与数字比较,那么如何判断两个浮点数相等?
一、浮点变量不可用“==” 或“!=” 与数字比较 float i = 9.3654564; if(i == 9.3654564) { printf("test ok\n"); } else { printf("test error\n"); }运行结果为test error无论是 float 还是 double 类型的变量,都有精度限制。所以一定要避 免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。我没法理解为什么精原创 2020-05-13 20:19:49 · 885 阅读 · 0 评论 -
打补丁文件的理解
字符设备 块设备 网卡摄像头属于字符设备像上层调用API函数 open read write 一样使用摄像头的时候,也需要写相关驱动,供上层直接调用。怎么写驱动?构造结构体 file_operation{.open = drv_open, .read = drv_read, …}告诉内核 register_chrdev(哪一个数组, file_operation,名字)...原创 2019-09-19 09:35:52 · 324 阅读 · 0 评论 -
对于“undefined reference to” 的解决思路
编译环境:linux版本:Ubuntu 5.4.0-6ubuntu1~16.04.11arm-linux-gcc版本:gcc version 4.3.21、去uboot/内核查找2、去库函数里查找(一般来说编译器自带很多库)echo $PATH 去查看下我们编译的目录,在该目录下查找库函数grep "__aeabi_i2f" * -nr把每个.a文件(静态链接库),都试下...原创 2020-04-29 14:51:41 · 1066 阅读 · 0 评论 -
arm-linux-gcc -march=armv4 可防止strh被拆分成strb
由 第十五课(2)Nor FLash编程_识别 得出的知识:在编译程序时加上:-march=armv4否则,volatile unsigned short *p = XXX;*p = val; //会被差分成2个strb操作原创 2020-04-18 22:25:30 · 234 阅读 · 0 评论 -
编译出现“__aeabi_uidivmod”和“__aeabi_uidiv”未定义(除法实现的问题)的解决方法
虽然参数是int类型,但是指针是short类型,所以也只用到低16bit转载 2020-04-18 14:20:37 · 5023 阅读 · 1 评论 -
C语言register关键字—最快的关键字
出处:http://blog.sina.com.cn/s/blog_6a1837e90101128k.html怕楼主删帖所以复制一份register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,它累死也可能不能全部把这些变量放入...转载 2020-04-16 12:15:53 · 198 阅读 · 0 评论 -
内存管理单元(MMU)与内存控制器
内存管理单元(Memory Management Unit )内存管理单元是在CPU内部内存管理单元的作用:虚拟地址到物理地址映射存储器访问权限控制高速缓存支持以下出自:https://blog.csdn.net/yetaibing1990/article/details/88344416如果CPU没有MMU、,或者有MMU但没有启用,CPU核在取指令或访问内存时发出的地址将直接传到...原创 2020-04-08 18:16:23 · 2552 阅读 · 0 评论 -
我们定义一个变量,数值存在相应的空间,那么变量名存储在哪呢?
例如,定义一个局部变量int a = 10;10存储在栈中, 那么a存储在哪?(可以从反汇编文件里看出来)C语言执行需要经过预处理(Preprocessing)、编译(Compilation)、汇编(Assemble)、链接(Linking)等几个阶段,在编译成汇编语言这个阶段就已经没有变量名了a是人为给4个字节取的"名字",实际上计算机并不存储a这个名字。实际上程序在编译时,所有的a都...原创 2020-04-08 17:27:42 · 885 阅读 · 1 评论 -
数组和指针 与 rodata段的联系
char buf[] = “hello word”;char *p = “hello world”;buf[2] = ‘e’;正确 变量修改p[2] = ‘e’;错误 常量修改这是为什么呢?有初始值的数组,数组的初始值放在rodata段里面,地址是固定的,需要绝对地址访问。数组名(地址)和开辟对应的空间上的数值存放在栈上,编译器会去访问rodata段上的初...原创 2020-04-08 14:12:47 · 352 阅读 · 0 评论 -
为什么尽量不要使用全局变量?
如何避免使用全局变量?http://qiusuoge.com/12683.html1)如果只有某.c文件用,就static到该文件中,顺便把结构体定义也收进来;当一个模块里面的全局变量超过3个(含)时,就用结构体包起来吧。要归0便一起归0,省得丢三落四的。2)如果只有一个函数用,那就static到函数里面去;3)如果非要开放出去让人读取,那就用函数return出去,这样就是只读属性了;...原创 2020-04-07 16:42:37 · 3354 阅读 · 0 评论 -
dup2重定向文件
dup2(fd, STDOUT_FILENO); //dupto的意思 就像xxxforxxx会命名成xxx4原创 2019-11-21 17:47:42 · 297 阅读 · 1 评论 -
goto该不该用?
from:https://bbs.csdn.net/topics/370233032goto主要用于两大类:1.出错转移,可节省代码简化程序2.从多重循环中跳出其中1可以用do{}while(false);循环来替代。2可以在改用break并在跳出前对外循环变量赋值的方式来替代。如果是错误处理,跳转到函数结果 还是可以用的, 但是代码里少出现多个goto...原创 2019-10-29 10:18:05 · 231 阅读 · 0 评论 -
git 的操作
怎么把自己的代码上传倒云服务器?查看下哪些文件被修改了:git status要添加的文件:git add core/app/wares.c再次查看下状态:git status上交到本地仓库上:git commit -m "Modify wares in core"#-m的信息代表我要的提示信息,方便大家查阅注册:git config --global user....原创 2019-10-21 11:37:21 · 81 阅读 · 0 评论 -
void* 指针赋值
void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pint; /* 不过不能 pint= pvoid; */如果要将pvoid赋给其他类型指针,则需要强制类型转换如:pint= (int *)pvoid;...原创 2019-10-17 14:04:45 · 6693 阅读 · 0 评论 -
定义结构体指针,结构体里的成员并没有分配内存
因为写习惯了双向链表,所以定义结构体的时候都喜欢定义成指针。typedef struct _SqlData{ char* ean; char* name; int price1; double sku;}SqlData;SqlData* goods = NULL; goods->ean = "1101"; 执行就会出错,内存溢出。因为指针下的ean并没有分配内...原创 2019-10-16 16:55:47 · 1446 阅读 · 2 评论 -
由浅入深写一个makefile文件
gcc编译过程预处理编译 .c -->.s汇编 .s -->.o链接 .o + 库文件a. gcc -o test a.c b.c对于a.c: 预处理、编译、汇编对于b.c:预处理、编译、汇编最后链接缺点:如果文件很多,即使你只修改了一个文件,但是所有的文件文件都要重新"预处理、编译、汇编"。 效率低。于是我们编写makefile:1、makefile规则...原创 2019-08-17 15:59:44 · 169 阅读 · 0 评论 -
makefile的= 、:=、+=、?=
在Linux的shell里,shell只认识字符串1、“=”make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子: x = foo y = $(x) bar x = xyz在上例中,y的值将会是 xyz bar ,x的值为xyz。2、“:=”“:=”表示变量的值决定于它在makefile中的...原创 2019-08-17 15:26:24 · 277 阅读 · 0 评论 -
判断文件夹或者文件是否存在以及权限等信息access()函数和删除文件或目录 remove()函数
#include<unistd.h>int access(const char* pathname, int mode);参数:pathname: 是文件的路径名+文件名mode:指定access的作用,取值如下:F_OK`值为0,判断文件是否存在 X_OK 值为1,判断对文件是可执行权限 W_OK 值为2,判断对文件是否有写权限 R_OK 值为4,判断对文...原创 2019-10-12 09:36:09 · 457 阅读 · 0 评论 -
当安装库不成功,出现404的情况
当我 安装 libsdl2-dev的时候,出现了404的情况。原因是,网站已经更新了,而系统记录的是原来的网址。执行以下命令:sudo apt update再进行安装库就可以了。...原创 2019-08-30 14:19:06 · 369 阅读 · 0 评论 -
64位系统编译32位文件 -m32
gcc编译时加上-m32参数 gcc -m32 src.c -o outputfile但是出现了如下错误: In file included from test.c:1:0:/usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: No such file or directory#include <b...原创 2019-08-17 10:48:40 · 1390 阅读 · 0 评论 -
用shell命令从 GItHub网站Git源代码
git clone https://github.com/zlgopen/awtk.git原创 2019-08-30 14:20:50 · 237 阅读 · 0 评论 -
安装库的命令
解压库./configmakemake install原创 2019-09-09 18:00:51 · 507 阅读 · 0 评论 -
平常遇到的问题——char类型的指针和数组表示的字符串,怎么把字符串指针的字符串一个个输出
注意:用char* letter指向的字符串一定要以'\0'结尾char* str = "abc2"; // ""自动补足'\0'for(i=0; i<strlen(str); i++){ char* letter = str[i]; printf("%s\n", letter);}得出的结果为:abc2bc2c22而不是:abc2因为字符串会以'\0...原创 2019-09-30 10:10:05 · 389 阅读 · 0 评论 -
数组的怎么第二次赋值?
使用sprintf 或者 strcpy/strncpy比如:char a[128] = {0};sprintf(a, “hello world!”);strcpy(a, “hello world!”);原创 2019-10-09 10:01:54 · 1736 阅读 · 0 评论 -
查看依赖库和查看所有库的命令
用来查看文件都需要依赖什么库ldd + 文件名用来查看库都在什么文件夹ldconfig -p |grep libpng原创 2019-09-09 17:55:20 · 3017 阅读 · 0 评论