![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
嵌入式
记录嵌入式、C语言
糊口的前端工程师
业精于勤,荒于嬉;行成于思,毁于随!
展开
-
VMware虚拟机下Ubuntu安装VMware tools和建立共享文件夹
#VMware虚拟机下Ubuntu安装VMware tools和建立共享文件夹步骤:1.运行Ubuntu系统,点击虚拟机中的安装VMware tools,则会在Ubuntu界面中出现VMware tools的文件夹。2.双击打开会有一个文件:VMwareTools-10.1.15-6627299.tar.gz(有可能版本不一样),打开终端将VMwareTools-10.1.15-6627...原创 2019-02-18 16:18:28 · 600 阅读 · 0 评论 -
nanopi 2用网线ping通电脑和Ubuntu虚拟机
必要条件:一条好的网线。开发板、电脑和虚拟机在同一个网段下(也就是192.168.1.xx,也可以是其它)。虚拟机网络设置为桥接模式。演示默认Windows主机IP地址为:192.168.1.10,开发板IP地址为:192.168.20,虚拟机IP地址为:192.168.1.141。详细步骤:1、开发板nanopi 2的设置打开nanopi 2 开发板,在SecureCRT ...原创 2019-02-13 15:40:31 · 491 阅读 · 0 评论 -
C语言结构体
结构体是一种构造数据类型有三种形式:数据类型、结构体类型(struct)、共用体类型(union)一般形式:struct [结构体名]{类型标识符 成员名;类型标识符 成员名;…};//牢记还有一个分号1、基本结构体1.1、定义结构体类型变量的3种方法1.1.1、先定义结构体类型+再定义变量名例题:struct student {int num;char ...转载 2019-02-26 15:20:59 · 262 阅读 · 0 评论 -
C语言常用预处理命令
指令含义#空指令,无任何效果,可以用来注释#include包含一个源代码文件,头文件#define定义宏#undef取消已定义的宏#if如果给定条件为真,则编译下面代码#ifdef如果宏已经定义,则编译下面代码#ifndef如果宏没有定义,则编译下面代码#elif如果#if条件不为真,当前条件为真,则编译下面代码#...原创 2019-02-25 19:42:25 · 1423 阅读 · 0 评论 -
Linux I/O文件编程
本文主要介绍I/O文件编程的最主要知识,包括:open,read,write,lseek,close以及fread&read、fread&fwrite、fopen&open、fopen&open的一些区别。第一部分在Linux中,为了保护内核空间,将程序的运行空间分为内核空间和用户空间,(内核态和用户态),他们运行在不同的级别上,在逻辑上是相互隔离的,因此用户...转载 2019-02-26 20:17:34 · 269 阅读 · 0 评论 -
Ubuntu中arm-linux-gcc安装
写在前面:本人在安装的过程中遇到了一些问题,也参考了网络上的一些文章,就此写下安装过程中的一些笔记和整理。下载地址:http://www.arm9.net/download.asp创建目录:mkdir /usr/local/arm(以下全部在root用户下操作)root@bai:/# mkdir /usr/local/arm将下载好的arm-linux-gcc-4.4.3-2010...原创 2019-02-25 12:02:30 · 638 阅读 · 0 评论 -
多任务编程-fork()和waitpid()函数
一、fork() 函数用于从一个已存在的进程中创建一个新进程,新进程称为子进程,原进程称为父进程。头文件:#include <sys/types.h>#include <unistd.h>pid_t child1,child2,father;child1=fork();函数格式pid_t fork(void); pid_t 为无符号整型参...原创 2019-02-27 16:59:05 · 1169 阅读 · 0 评论 -
boa网页cgi中文显示乱码
在运行boa网络服务器的时候,CGI程序在游览器显示的时候,中文部分会出现乱码解决办法:在main函数中加上:printf(“Content-type: text/html;charset=utf-8\n\n”);ps:就是加在main{}函数中。...原创 2019-03-05 16:07:41 · 806 阅读 · 0 评论 -
Ubuntu下boa服务器的移植
1、在http://www.boa.org/下载boa(boa-0.94.13.tar.gz),并放到Ubuntu中建立好的文件夹中。2、解压文件: tar -vxf boa-0.94.13.tar.gz,得到 boa-0.94.13 文件夹。3、命令:cd boa-0.94.13/src/,进入src/目录中运行./configure生成Makefile文件。4、在src/目录中修改一下文...原创 2019-03-04 00:02:25 · 571 阅读 · 1 评论 -
c语言链表详解
链表链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用。链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点。链表都有一个头指针,一般以head来表示,存放的是一个地址。链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的。链表中每个节点都分为两部分,一个数据域,一个是指针域。说到这里你应该...转载 2019-03-06 11:27:41 · 3351 阅读 · 4 评论 -
atoi()函数和itoa()函数
类型转换的几种方式1.int/float to string/array:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。● itoa():将整型值转换为字符串。● ltoa():将长整型值转换为字符串。● ultoa():将无符号长整型值转换为字符串。● gcvt():将浮点型数转换为字符串,取四舍五入。● e...原创 2019-03-07 16:23:05 · 524 阅读 · 0 评论 -
linux 互斥机制
linux 互斥机制四种方式:中断屏蔽、原子操作、自旋锁、信号量1. 必须先了解的基本概念1.1 临界区一段代码,在程序中多次被执行,每次执行的过程,我们称之为代码的执行路径。当不只一个,及两个或以上代码路径要竞争一个共同的资源的时候,该代码段就是临界区。那么在有一个线 程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。1.2 互斥机制访问共享资源...原创 2019-03-10 11:46:13 · 2130 阅读 · 0 评论 -
嵌入式软件工程师笔试面试题
1、int a[10]={1,2,3,4,5,6,7,8,9,0};int *p=&amp;a[1];则p[6]等于82、整数数组清零:bzero(),memset()。3、sizeof();测试变量所占地址的字节数4、 main(){char *str[]={“ab”,“cd”,“ef”,“gh”,“ij”,“kl”};char t;t=(str+4)[-1];printf(...转载 2019-03-12 22:14:01 · 1538 阅读 · 0 评论 -
C语言中whlie(1)跳出循环的三种结束方式
本次要讲的方式有三种:break;return;goto;示例代码: 1 #include &lt;stdio.h&gt; 2 3 int main(void) 4 { 5 int i=0,j=5; 6 while(1) 7 { 8 if(i&lt;=j) 9 ...原创 2019-03-16 11:25:48 · 44597 阅读 · 0 评论 -
耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒
问题:耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒思路:1.将每个人进行原始标号,从1~13号;2.从第一位开始报号,当你报到3的时候,你的标号清除(我们用0代表);3.每当一个人被标记为0,相应的总人数减1;4.以此类推,当只剩下...原创 2019-03-16 20:32:14 · 4103 阅读 · 0 评论 -
TCP三次握手和四次挥手过程
TCP三次握手和四次挥手过程1、三次握手(1)三次握手的详述首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。最初两端的TCP进程都处于CLOSED关闭状态,A主动打开连接,而B被动打开连接。(A、B关闭状态CLOSED——B收听状态LIS...转载 2019-03-16 21:39:15 · 175 阅读 · 0 评论 -
字符串处理之字符串简单倒序,如“hello,world” 倒序之后变成“dlrow,olleh”。
字符串反转在面试过程中经常被涉及,所以写一个简单的字符串倒序。功能实现:将字符串:“hello,world”倒序,变成“dlrow,olleh”。以下写出两种方法实现:方法一:用两个指针s 和 d 进行字符串头尾的交换 。代码实现:#include <stdio.h>#include <string.h>#include <stdlib.h>...原创 2019-03-24 15:57:24 · 4816 阅读 · 0 评论 -
符串处理之字符串简单排序,如:原始字符串为“ABC###DE#F”,处理后为“####ABCDEF”。
题目要求:将字符串中“#”左移至最前面,同时不能修改其它字符的先后顺序,并返回“#”的个数*如将原始字符串为“ABC###DE#F”,处理后为“####ABCDEF”。思路:1.将字符串保存在一个数组里。2.再申请两个内存用以保存字符“#”和其它字符。3.将其它字符加到字符“#”后面。代码实现:#include <stdio.h>#include <stdlib...原创 2019-03-25 20:50:42 · 671 阅读 · 0 评论 -
C语言精讲之程序中内存从哪里来(1)内存
本文是自己的学习笔记,我将笔记写在博客中出来。本文主要介绍程序中的内存以及内存与栈、堆、数据区的关系。由于字多看的眼睛疼,所以分为四个部分如下:C语言精讲之程序中内存从哪里来(2)栈C语言精讲之程序中内存从哪里来(3)堆C语言精讲之程序中内存从哪里来(4)数据段按照以下顺序介绍它们的关系:1、内存2、栈3、堆4、数据区1、内存1.1、程序执行为什么需要内存?因为程序执行...原创 2019-04-09 16:16:22 · 3260 阅读 · 0 评论 -
C语言精讲之程序中内存从哪里来(2)栈
2、栈栈具有运行时自动分配&自动回收、反复使用、脏内存、临时性(函数不能返回栈变量的指针)。(1)、栈内存是先进后出,是每进程自带的小块内存。(2)、运行时自动分配&自动回收栈是自动管理的,程序员不需要手工干预,方便快捷。(3)、反复使用栈内存在程序中其实就是那一块空间,程序反复使用这一块空间。(4)、脏内存栈内存由于是反复使用的,每次使用后程序不会去清理,因此...原创 2019-04-09 16:14:57 · 985 阅读 · 0 评论 -
C语言精讲之程序中内存从哪里来(3)堆
3、堆一、 堆具有操作系统堆管理器管理、大块内存、程序手动申请&释放、脏内存、临时性(1)、操作系统堆管理器管理堆管理是操作系统的一个模块,堆管理内存分配灵活,按需分配。(2)、大块内存堆内存管理者总量很大的操作系统内存块,各进程可以按需申请使用,使用完释放。比如:图书馆借书,你根据自己的需求,借相应的书籍,向图书馆申请,这期间别人借不了,等你使用完之后,再申请还书。(3)...原创 2019-04-09 16:14:10 · 818 阅读 · 0 评论 -
C语言精讲之程序中内存从哪里来(4)数据段
4、数据段一、 代码段、数据段、bss段编译器在编译程序的时候,将程序中的所有的元素分成一些组成部分,各部分构成一个段,所以说段是可执行程序的一部分。(1)、代码段代码段就是程序中的可执行部分,直观理解代码段就是函数堆叠组成的。(类比:函数是动词,会动的,变量是名词,需要别人改动的)(2)、数据段(也被称为数据区、静态数据区、静态区)数据段是程序中的数据,直观理解就是C语言程序中的...原创 2019-04-09 16:12:32 · 816 阅读 · 0 评论