
LinuxC
小飞要加油啊
菜鸟就得努力啊
展开
-
linuc 文件夹的拷贝
转自:http://blog.youkuaiyun.com/yongh701/article/details/50403256在《【Linux】利用C语言文件流复制单一文件》(点击打开链接)讲述了如何用C语言拷贝文件,但是这只能拷贝单一文件。如果你要用LinuxC拷贝整个文件夹,同样要像《【Java】利用文件输入输出流完成把一个文件夹内的所有文件拷贝的另一的文件夹的操作》(点击打开链接)一样,...转载 2017-11-19 09:19:41 · 822 阅读 · 0 评论 -
原码 反码 补码的关系
对于刚接触编程语言的群体来说,或许对 原码,反码,补码的概念跟模糊,下面我们简单介绍下。写在前面: 对于有符号类型的数,最高位决定这个数的正负,最高位为0,代表正数,最高位为1,代表负数,例如:-5 : 1000 0101 +5 : 0000 0101原码: 简单点,就是一个数的二进制形式,例如 十进制数字 9,原码就是:0000 1001 ;-9 时 原码就是...原创 2019-09-24 18:02:56 · 2024 阅读 · 0 评论 -
C/C++ 指针和引用的区别
本质:引用是别名,指针是地址,具体的:①从现象上看,指针在运行时可改变其所指向的值,而引用一旦和某个对象绑定后就不在改变。这句话可以这样理解:指针可以被重新赋值以指向另一个不同的对象。但是引用总指向在初始化时被指定的对象,以后不能改变,但是指定的对象内容可以改变。②从内存上分配看,程序为指针变量分配内存区域,而不用为引用分配内存区域,引用声明时必须初始化,从而指向一个已经存在的对象,引用不...转载 2019-09-24 09:24:59 · 268 阅读 · 0 评论 -
关于 C/C++ ++a a++ --a a-- 自增自减
对于刚接触C/C++来说,++a a++ 和 --a a--或许会有些迷糊.++(递增运算符) --(递减运算符) 各有两种出现形式 根据运算符的位置分为前缀和后缀形式a++ b-- 属于后缀形式 ++a --b 属于前缀形式先程序根据结果我们再去分析:#include <iostream>using namespace std;const int...原创 2019-05-29 16:01:23 · 2189 阅读 · 2 评论 -
C 语言 CRC校验生成与数据校验源码的程序(包括CRC-4,5,6,7,8,16,32)
与硬件通信 需要进行CRC校验 ,参考博客https://blog.youkuaiyun.com/Backspace110/article/details/84755054/****************************************************************************** * Name: CRC-4/ITU x4+...转载 2019-05-23 22:11:18 · 1665 阅读 · 0 评论 -
windows 下C语言socket编程
之前一直在Linux系统开发C语言的socket,由于项目的需要 需要在windows下开发,第一次在windows下开发,顺便记录下来。首先socket的通信流程:Server程序:1 .创建socket:socket();2. 绑定socket的IP+端口号:bind();3.监听端口号:listen();4.接收客户端的连接请求:accept();5.读写客...原创 2019-05-22 10:01:12 · 6277 阅读 · 4 评论 -
C语言 :指针常量和常量指针的区别
标题列出了5个概念,以指针为一组,常量为一组的两组概念内部是非常容易混淆的。希望以本文来清晰区分它们。一. const限定符将const理解为一个修饰词似乎更容易理解一些。一旦出现const,一定要看清楚它究竟修饰的是什么。虽然这句话比较抽象且模糊,但接下来所述的所有内容将举出例子,理解下面的内容就会理解这句话的含义。如下面所看到的,所有涉及指针的概念为一组(即常指针和指针常量为一组)...转载 2019-05-08 21:59:46 · 1579 阅读 · 0 评论 -
typdef 定义函数的理解
C语言 允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。一旦用户在程序中定义了自己的数据类型名称,就可以在该程序中用自己的数据类型名称来定义变量的类型、数组的类型、指针变量的类型与函数的类型等。基本的用法下面有简单介绍,我们先说说如何用typedef ...转载 2019-05-08 21:41:06 · 747 阅读 · 0 评论 -
C语言 字符串转16进制
#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ char *str="12345678"; int a[4]; int i=0; for(i=0;i<4;i++) { sscanf(str,"%2x",&...原创 2018-12-19 10:22:39 · 4521 阅读 · 0 评论 -
C99标准
C语言 C99规范标准链接:https://pan.baidu.com/s/13Y9xYgvLNYxLr-S0ZsvlWA 密码:k1pl原创 2018-09-11 19:54:10 · 4733 阅读 · 6 评论 -
C语言堆和栈的区别
C语言中堆和栈的区别一.前言:C语言程序经过编译连接后形成编译、连接后形成的二进制映像文件由栈,堆,数据段(由三部分部分组成:只读数据段,已经初始化读写数据段,未初始化数据段即BBS)和代码段组成,如下图所示:1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值。其操作方式类似于数据结构中的栈。2.堆区(heap):一般由转载 2018-01-13 11:31:03 · 194 阅读 · 0 评论 -
Gcc 警告: warning: dereferencing type-punned pointer will break strict-aliasing rules
今天在ubuntu 下编译 busybox 的时候,出现了这个警告:warning: dereferencing type-punned pointer will break strict-aliasing rules。用有道的翻译结果是:警告:取消对类型指针的引用将打破严格的别名规则。在高优化级别下,不同类型指针之间的强制类型转换可能会触发这样的警告:在高优化级别下,gcc假定不...原创 2019-11-01 14:24:41 · 8594 阅读 · 1 评论 -
文件内存映射
文件内存映射 加快对文件的读写速度利用内存映射原理 实现对数据的读写和保存至文件 省去了write () .read()的使用.本例实现了类似于小型数据库 对学生信息的增添查改功能代码如下:#include#include#include#include#include#include#include#define MALLOC (Stu*)malloc(sizeo原创 2017-12-13 12:14:06 · 318 阅读 · 0 评论 -
无界面 socket通信模拟在线评测
无界面 socket通信模拟在线评测 客户端向服务端发送一个.c文件 服务端编译并运行此文件并把结果或错误信息返回给客户端;server.c#include#include#include#include#include#include#include#include#define SERVER_PORT 8888#define LIS原创 2017-12-22 02:27:02 · 579 阅读 · 0 评论 -
socket 实现简单的计算器
socket 实现简单的的计算器 服务端 server.c 对客户端的请求进行处理,并返回结果 客户端 client.c 向服务端发送一个表达式 如 add 1 2 表示 1+2 服务器返回结果; 主要功能 + - * / echo 代码:server.c#include#include#include#include#include#原创 2017-12-13 11:30:38 · 1922 阅读 · 4 评论 -
线程处理函数pthread_cleanup_push / pthread_cleanup_pop
线程处理函数pthread_cleanup_push / pthread_cleanup_pop 线程可以安排它退出线程处理函数pthread_cleanup_push / pthread_cleanup_pop时需要调用的函数,这样的函数称为线程清理处理程序,线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说它们的执行顺序与它们注册时的顺序相反。 pthread_c转载 2018-01-12 20:52:55 · 403 阅读 · 0 评论 -
多线程 -- 并发与并行概念总结
今天开始了解线程 对并行和并行不了解 特此在网上查了查,参照大佬们的博客 :多线程:在了解线程之前,要先知道进程这个概念。进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。简单点说,进程就是执行中的程序活动,是一个活动的实体。多进程,就好比同时打开了Word,Excel和Visio,他们都是不同的程序运行活动,即多个进程同时启动而已,这个概念比较好理解。线程,是一个执行中的程序活动(...转载 2018-05-20 16:40:49 · 277 阅读 · 0 评论 -
关于linux make时出现错误 /bin/sh: 1: Syntax error: "(" unexpected
当用make去编译Makefile文件的时候,如果有出现/bin/sh: Syntax error: 的错误时候,一般是当前默认的shell不正确的原因 首先可以用命令ls -l /bin/sh 看看当前默认的是什么shell,Ubuntu一般默认为bash 再用要修改默认的shell,可以采用命令sudo dpkg-reconfigure dash。会出现如下...原创 2018-05-29 19:28:35 · 17273 阅读 · 12 评论 -
C语言 字符串和16进制数的互相转化
16进制到字符串:#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int a[6] = {0x12,0x34,0x56,0x78,0xab,0xcd}; char *str = (char*)malloc(32); memset(str,0,32); i...原创 2019-02-15 14:44:09 · 4126 阅读 · 10 评论 -
Linux C 打印错误信息函数
在 linuxC中,使用strerror() 和 perror( ) 函数打印相应的错误信息,这两个函数的标准格式说明如下:#include <string.h>char *strerror(int errnum);#include <stdio.h>void perror(const char *msg)strerror函数的返回值是一个指向消息...原创 2019-07-22 21:13:20 · 1329 阅读 · 0 评论 -
linux 查看声卡设备并测试录音 (ALSA 音频工具)
测试环境 ubuntu12 与其他linux 系统大同小异 高级Linux声音体系(英语:Advanced Linux Sound Architecture,缩写为ALSA)是Linux内核中,为声卡提供的驱动组件,以替代原先的OSS(开放声音系统)。 一部分的目的是支持声卡的自动配置,以及完美的处理系统中的多个声音设备,这些目的大多都已达到。另一个声音框架JACK使用ALSA提...原创 2019-08-07 18:28:04 · 19272 阅读 · 4 评论 -
进程间通信
实现父子进程间的通信介绍: 1 .以结构体为传输目标 ,先定义一个枚举类型存放消息类型,定义一个结构体 存放消息类型和该消息类型的结构体的大小,定义不同消息类型的消息的结构体 父进程写入消息,子进程读取消息 2 .创建管道 父子进程,公有三个文件 pipe_main.c main函数文件 创建管道的 子父进程 pipe_mes.原创 2017-12-13 11:49:50 · 264 阅读 · 0 评论