
LinuxC
Chz_1
实践出真知!用程序解答疑问!
展开
-
C语言结构体struct的比较
两个struct结构体进行比较,首先不能直接比较。struct A a,b;a和b相比是错误的。其次不能进行内存比较。如下,程序运行的结果会如何?void DiffStructWithMultiVar(){ struct A a = {0}; struct B b = {0}; //illegal compare if (memcmp(&a, &b, sizeof(struct A)) == 0) printf("a = b .原创 2020-10-14 22:30:37 · 16807 阅读 · 2 评论 -
linux cJson库使用
1、cJSon库的好处在c语言里用到json格式的字符串,拼接起来就很麻烦,如果数据大,需要申请空间,如果中间要再插入一个子项,还需要麻烦的拷贝拼接。用cJSon库的好处就是:1、拼接、插入方便。临时增加,修改,直接用对于的接口来实现,快速,方便。2、空间申请问题由接口底层去实现。如果拼接很多,内存问题我们不用去过多考虑,只要知道怎么用就可以避免内存泄露问题。3、格式统一。书写方便,可能...原创 2019-12-04 21:31:48 · 1286 阅读 · 0 评论 -
open 与 fopen一个文件并正常写入 删除文件不报错
open 与 fopen一个文件并正常写入, 删除文件不报错代码如下:open.c#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <errno.h>int main(){ in...原创 2019-11-11 23:50:23 · 901 阅读 · 0 评论 -
yum 报错SyntaxError invalid syntax
yum 报错的原因是安装了高版本的Python,而yum默认的是低版本的。将/usr/bin/yum 和 /usr/libexec/urlgrabber-ext-down 两个文件的第一行#!/usr/bin/python改成 如下,保存退出就可以了#!/usr/bin/python2.7执行yum命令报错[root@localhost ~]# yum File "/usr/bin...原创 2019-10-26 22:40:18 · 1927 阅读 · 0 评论 -
LinuxC select函数小结
1、select机制是用于多路复用,什么叫复用,结合我的理解,就是在一个进程的一个线程里,能够同时去使用文件描述符(一般是socket套接字多连接)2、用法步骤:fd_set rfds; //文件描述符集合struct timeval tv;tv.tv_sec = 0;int ret, maxfd = -1;FD_ZERO(&...原创 2019-02-24 17:11:15 · 331 阅读 · 0 评论 -
LinuxC 对多线程访问全局变量的理解
假设现在有线程A和线程B,还有全局变量i,寄存器X1、线程对全局变量的访问时分三步走的 :(1)、取全局变量i到某个寄存器X(2)、对寄存器进行操作,即操作i的值(3)、操作完之后将寄存器X的值存会i2、多线程实际上是由时间片选来轮换进行的。当线程A执行到某个地方还没结束的时候,可能就会轮换到线程B来执行。3、总和上述两点,当线程A访问变量i的时候,可能只到了第(2)小步,就轮换到线程...原创 2019-02-25 23:14:52 · 4949 阅读 · 0 评论 -
unsigned char 存 char类型的数据
1、如下,unsigned char i = 0;i = -1;printf("%d\n", i);结果输出 255;2、分析,出现这种情况,主要在于计算机中存储负数的特性导致的。-1, 在内存中是以相反数的形式存的,实际如下 ,所以最终变成255。3、在学c语言的时候,不同的数据类型都是有不同的范围的。很明显char 类型是 -128(0)~127,所以这些细节的东西平时也要多...原创 2019-04-07 14:52:53 · 2638 阅读 · 0 评论 -
C语言 goto 的作用域,用法
1.goto函数的作用域就是一个函数的作用域大小。注意,是函数的作用域,而不是花括号{ }。如下图,注释部分就是说明。如果在一个函数里加花括号{ }去验证,编译时会重复定义的错2、跨函数使用,如下所示,也会报错。一个是没有定义,一个是定义了未使用!!!3、这样一来,goto在使用时,在不同的函数,标签定义一样也是没有问题的。如下代码,输出结果。可见,goto 便签在不同函数定义一样是没有问...原创 2019-04-30 20:05:15 · 6079 阅读 · 0 评论