自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 有关LinuxC的一些问题

1.static全局变量,局部变量,函数与普通全局变量,局部变量,函数有什么区别?  1)全局变量 : 只能被本文件访问,不能被其他文件调用 2)局部变量 : 变量的声明只执行一次,且延长了局部变量的生命周期直到main函数结束才会被释放 3)函数 : 同全局   2。程序的内存分配,即一个由C/C++编译的程序占用的内存分为几个部分?  1)BSS段 : static、未初始化的全局...

2018-01-29 17:19:01 301

原创 单片机部分学习-PCB的绘制

1.PCB的分类:   1)单层板 : 走线一层完成,适用于直插元器件;  2)双层板 : 适用于直插件和铁片元器件;  3)多层板 : 适用于贴片元器件(价格较高) 2.PCB重要的层介绍  1)Solder层 ; 露铜层,即铺绿油的层 2)Paste层 : 钢网层 工厂加工时需要,自己绘制PCB板不需要 3)Silkscreen层 丝印层 用来标示元器件的标号 4)

2018-01-28 20:44:45 1176

原创 判断单链表内是否存在环

首先,有一个简单的代码可以判断: listnode_ptr current =head->next; while(current) {   if(current==head)   {     printf("YES!\n");     return 0;   }   else   {     cu

2018-01-28 20:04:39 329

原创 约瑟夫环的C语言实现

约瑟夫环问题 :已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 对于该问题,众所周知有两种方法,一为循环单链表,一为数组,在这里我们假设均从第一个人开始报数,先讨论循环单链表的实现方法 相较于数组,用循环单链表实现较为简单,主要就是创建循

2018-01-28 19:29:53 17080 1

原创 Linux网络编程-UDP

一、基本的udp socket编程 1. UDP编程框架 要使用UDP协议进行程序开发,我们必须首先得理解什么是什么是UDP?这里简单概括一下。 UDP(user datagram protocol)的中文叫用户数据报协议,属于传输层。UDP是面向非连接的协议,它不与对方建立连接,而是直接把我要发的数据报发给对方。所以UDP适用于一次传输数据量很少、对可靠性要求不高的或对实时性要

2017-12-07 16:31:50 307

原创 Linux网络编程-TCP

1. 网络中进程之间如何通信 网间进程通信要解决的是不同主机进程间的相互通信问题(可把同机进程通信看作是其中的特例)。为此,首先要解决的是网间进程标识问题。同一主机上,不同进程可用进程号(process ID)唯一标识。但在网络环境下,各主机独立分配的进程号不能唯一标识该进程。 其次,操作系统支持的网络协议众多,不同协议的工作方式不同,地址格式也不同。因此,网间进程通信还要解决多重协议的识别问题

2017-12-07 16:30:40 431

原创 Linux学习-作业

1、简述Linux进程内存空间分为哪几个段?作用分别是什么?   答:Linux中的进程包含3个段,分别为“数据段”、“代码段”和“堆栈段”。 “数据段”:已被初始化的变量,包括全局变量和已被初始化的静态变量;未初始化数据段,存储未被初始化的静态变量,又称BBS; “代码段”存放的是程序代码的数据; “堆栈段”存放的是子程序的返回地址、子程序的参数以及程序的局部变量等。   2、如何

2017-12-07 16:28:07 269

原创 Linux多线程编程

1. 线程和进程的区别: 进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。 线程通常叫做轻型的进程。线程是在共享内存空间中并发执行的多道执行路径,他们共享一个进程的资源。 线程和进程比起来很小,所以相对来说,线程花费更少的CPU资源。   2.如何来标识一个线程?    表示进程号的为pid_t类型,表示线程号的是pthread_t类型; pthrea

2017-12-01 13:55:45 301

原创 Linux进程间通信2

1. 什么是消息队列?   消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。  每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。 但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。        2. 消息队列的该如何应用?   消息队列是链表队列,它通过内核提供一个stru

2017-12-01 13:54:16 215

原创 Linux进程间通信1

1. Linux下进程间通信方式有有那些? 1)管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。   2)有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。   3)信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程

2017-12-01 13:51:37 221

原创 Linux的文件操作

1. Linux下文件的该概念是什么? Linux中的文件具有的特点是:可通过操作系统或者程序对外提供信息,也能对内输入信息,可以被创建,删除。 Linux中,文件有特别重要的意义,他们为操作系统和设备提供了一个简单而统一的接口。在Linux中,几乎一切都可以看做是文件 。 这就意味着,普通程序完全可以像使用文件(普通定义)那样使用磁盘文件、串行口、打印机和其他设备。 硬件设备在linux

2017-11-24 14:56:46 271

原创 Linux进程管理

1. 进程控制中的一些专有名词 多用户:多个用户同一时间使用计算机  多任务:同时执行几个任务,并且可以在还没有执行完一个任务的时候执行另一个任务  程序:静态,保存在硬盘上的可执行代码  进程:动态,运行中的程序,表示过程(操作系统资源管理的最小单位)  线程:在进程内部,比进程更小的能独立运行的基本单位  实际用户:标识运行该进程的用户  有效用户:标识来运行该进程的用户身份 

2017-11-23 22:47:49 240

原创 Linux编程预习 - 栈与队列

1.栈的定义 栈是限制仅在表的一端进行插入和删除运算的线性表又称为后进先出表(LIFO表)。插入、删除端称为栈顶,另一端称栈底。表中无元素称空栈。   2.栈的作用 栈的引入简化了程序设计的问题,划分了不同关注层次,使得思考范围缩小,更加聚焦于我们要解决的问题核心。反之,像数组等,因为要分散精力去考虑数组的下标增减等细节问题,反而掩盖了问题的本质。 3.栈的逻辑结构和存储表示

2017-11-03 11:06:56 383

原创 LinuxC编程 - 线性表

1.线性表的基本概念 线性表(List):由零个或多个数据元素组成的有限序列。   2.使用注意事项: 1.线性表是一个序列。 2.0个元素构成的线性表是空表。 3.线性表中的第一个元素无前驱,最后一个元素无后继,其他元素有且只有一个前驱和后继。 4.线性表是有长度的,其长度就是元素个数,且线性表的元素个数是有限的,也就是说,线性表的长度是有限的。 如果用数学语言来

2017-10-26 21:56:25 479

原创 LinuxC编程预习 - 预处理与结构体

1. 条件编译:(按照不同的条件去编译不同的程序部分) 格式1:#ifdef 标识符 程序段1 #else 程序段2 #endfif 如果标识符被定义了就执行程序段1,否则执行程序段2 格式2:#ifndef 标识符 程序段1 #else 程序段2 #endfif 如果标识符未被定义了就执行程序段1,否则执行程序段2 格式3:#if 常量表达式 程序段1

2017-10-26 21:45:53 342

原创 Linux编程预习-函数

1.函数如何进行定义 1)函数简介:函数是C语言程序的基本模块,函数一般可以从3中角度进行分类: 从函数定义角度: 1)库函数:库函数由C系统提供,用户无需定义,可以直接调用。 2)用户自定义函数:用户自己编写的函数,在调用的函数中还必须对被调用函数进行类型说明才能使用。 从返回值角度看: 1)有返回值的函数:有返回值的函数在被调用后将向调用者返回一个执行结果,这个结果就是返回

2017-10-19 22:58:11 287

原创 Linux编程预习-数组与指针

1.什么是指针?     1)系统为指针分配内存空间     2)指针有自己的地址     3)指针能够存值,但这个值是地址 2.如何判断指针的类型? 从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部 分就是这个指针的类型。这是指针本身所具有的类型。 例:(1)int*ptr;//指针的类型是int*     (2)char*ptr;//指针的类型是c

2017-10-19 22:48:08 235

原创 从零开始学习嵌入式-笔记(1)

shell命令解析器 #/bin/bash   或  #/bin/sh  打开不同的shell sh:Bourne Shell bash:Bourne Again Shell shell脚本文件名:   xxx.sh 定义变量:例:    a=“hello world”  echo  $a   /   echo  ${a} $#传入脚本的命令行参数个数 $*所有命令行的参数值,在各

2017-10-14 14:18:24 368

原创 LinuxC关于语句的一些问题

1.从程序流程角度来看,程序的分类? 顺序结构、分支结构、循环结构。这三种基本结构可以组成所有的各种复杂程序 2.使用空语句的目的 1)纯粹消耗CPU时间,起到延时的作用 2)为了程序的结构清楚,可读性好,以后扩充新功能方便 3.基础语句 1)表达式语句 由表达式加上分号“;”组成,一般形式为                表达式; 2)函数调用语句 由函数名,实

2017-10-08 22:41:21 271

原创 LinuxC关于运算符的一些问题

1.C语言运算符的分类? 1)算术运算符:用于各类数值运算,包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--) 2)关系运算符:用于比较运算,包括大于(>)、小于(=)、小于等于( 3)逻辑运算符:用于逻辑运算,包括与(&&)、或(||)、非(!) 4)位操作运算符:参与运算的量,按二进制位进行运算,包括位与(&)、位或(|)、位非(~)、位

2017-10-08 22:00:46 305

原创 C/C++关于数据类型的一些问题

1.声明跟定义的本质区别是什么?  声明就是指给除了当前变量或者函数,或者类什么的名字,不给其中的内容,就是先告诉你有这样一个什么类型的变量或者函数,但是这个变量或者函数的具体信息却是不知道的。就好比跟你介绍一个人的时候,声明就是只告诉你这个人叫什么,但是缺不给你说这个人到底怎么样,他有哪些优点,缺点,喜好问题是什么的  定义就不一样了,定义直接告诉你了所有的东西,这个变量是什么,这个函数

2017-10-05 11:39:14 303

原创 Linux必学命令-系统管理,系统安全类

系统管理类: 1.df     df用来检查文件系统的磁盘空间占用情况,使用权限为所有用户     使用格式:  df  选项                           选项分类: -s:对每个Names参数只给出占用的数据块总数。                                                -a:递归地显示指定目录中各文件及子目录中各文件占用

2017-10-04 16:35:10 294

原创 Linux必学命令-文件处理类命令

1.file     file 通过探测文件内容判断文件类型,使用权限为所有用户     使用格式:  file  选项  文件名                          选项分类:  -v  在标准输出后显示版本信息并保存退出                                                -z  探测压缩过的文件类型

2017-10-03 21:01:39 295

原创 Linux应用程序开发工具-GDB调试与Make

为了提高编译程序的效率,很多基于Windows的开发系统都提供了工程管理器。 GCC提供了半自动化的工程管理器。半自动化,即使用工程管理器前需要自己进行程序编译规则的编写。Make工程管理器完全根据Makefile文件中的编译规则进行编译,Makefile由以下三部分组成:     1)需要生成的目标文件(target file)     2)生成目标索取要的依赖文件(dependency

2017-10-02 15:24:39 344

原创 Linux应用程序开发工具--GCC编译器

GCC编译器是Linux系统中最流行的编译系统,它的有点有两个:     1.GCC可以为X86,ARM等不同体系结构的硬件平台编译程序。     2.GCC可以编译数十种不同的高级语言,如C,C++,JAVA等。 GCC编译器的命令格式为:     gcc  选项  文件名  选项  文件名 而GCC拥有非常庞大的编译选项,主要分为一下几类: (编译的流程为预处理-编译-汇编-链接(

2017-10-01 12:11:52 517

转载 Linux 文件系统

这篇博客我想解决两个问题:  1:Linux下皆文件,为什么?怎么解释这个问题?  2:touch file 命令执行过程究竟发生了什么。到具体的磁盘上它是怎样运作的? 带着这两个问题,我们继续往下走。相信我解释清楚文件系统之后,大家对这两个问题都会有自己的理解。 什么是文件系统 文件系统是对物理存储介质上数据和元数据的组织方式。 物理存储介质:磁盘,U盘等。 数据:文

2017-04-22 10:19:02 257

转载 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结

转载自:http://blog.youkuaiyun.com/ljj583905183/article/details/42011041 基础篇:操作系统、计算机网络、设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件。 2. 进程与线程的区别。 3. 进程通信的几种方式。 4. 线程同步几种方式。(一定要会写生产者、消费

2017-04-22 10:16:03 218

原创 工程管理器

在实际的开发过程中,仅仅通过使用GCC命令对程序进行编译时效率是非常低的,原因主要有以下两点: 1.程序往往是由多个源文件组成的,源文件的个数越多,那么GCC的命令行就会越长。此外,各种编译规则也会加大GCC命令行的复杂度,所以在开发调试程序的过程中,通过输入GCC命令行来编译程序是很麻烦的。 2.在程序的整个开发过程中,调试的工作量占到了整体工作量的70%以上。在调试程序的过

2017-04-22 10:11:53 571

转载 Linux 下三种方式设置环境变量

1、在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误。 2、那么什么是环境变量?简单说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。 设置变量对于一般人最实用的功能就是: 不用拷贝某些dll文件到系统目录中了,而path 这一系统变量就是系统搜索

2017-04-19 16:38:27 500

转载 Linux 终端配置

一般Linux中的配置文件大多以点开头,而且多以rc结尾。比如vim的配置文件 .vimrc,bash shell的配置文件.bashrc,等等。  像这样的配置文件,如果用ls -l命令是列不出来的,需要用ls -a来列出。 “rc”,它是“runcomm”的缩写――即“run command”(运行命令)的简写。 “rc” 是取自 “runcom”, 来自麻省理工学院在 1965

2017-04-19 16:35:17 512

原创 嵌入式调试器-GDB

使用GCC调试C程序时,只能依靠gcc发出的警号或错误信息来进行,所以调试的效率非常低。 为此,GNU开发了GDB调试器。GDB的调试功能非常强大,甚至可以和Visual C++等开发工具箱媲美。但GDB的缺点是没有图形调试界面。尽管如此,对于从事嵌入式Linux应用开发的人员还是有必要知道GDB的使用方法的,例如: 常用命令:1.查看源文件。在调试程序时,在GDB中通过命令l(list的缩写

2017-04-19 16:08:50 464

转载 Linux 内核引导选项简介

概述 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"__s

2017-04-13 12:57:12 3995

转载 对 Linux 新手非常有用的 20 个命令

对 Linux 新手非常有用的 20 个命令 你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟!!!我说什么呢,是什么原因你就出现在我的世界里了。从我以往的经验来说,当我刚使用Linux,命令,终端啊什么的,吓了我一跳。我担心该记住多少命令,来帮助我完成所有任务。毫无疑问,在线文档,书籍,man pages以及社区帮了我一个大忙,但是我

2017-04-13 12:55:30 573

原创 一星期Linux学习

编译的几个过程:预处理 编译 汇编 链接 预处理过程要做的:1.头文件展开 2.宏替换 3.条件编译 编译阶段的任务:语法检查,词法分析 gcc -E :在预处理阶段停下 gcc -E XXX > XXX.i :把预处理后的内容输出到XXX.i 文件中 gcc -c:在编译阶段停下(文件名:XXX.o) gcc -s:在汇编阶段停下(文件

2017-04-13 12:45:00 231

转载 Linux curl命令详解

命令:curl 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。 语法:# curl [option] [url] 常见参数: -A/--user-agent 设置用户代理发送给服务器 -b/--c

2017-03-30 13:02:02 402

转载 Linux面试题集锦二

Linux面试题集锦二 二.单项选择题: 1. 下面的网络协议中,面向连接的的协议是: A 。 A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议 2. 在/etc/fstab文件中指定的文件系统加载参数中, D 参数一般用于CD-ROM等移动设备。 A defaults B sw C rw和ro D noauto 3. Linux文件权限一共10

2017-03-30 13:00:04 330

原创 Linux基本命令练习及make命令的使用

_ 1. 请在 /tmp 这个目录下建立一个名为 vitest 的目录; _ 2. 进入 vitest 这个目录当中; _ 3. 将 /etc/man.config 拷贝到本目录底下 _ 4. 使用 vi 开启本目录下的 man.config 这个档案; _ 5. 在 vi 中设定一下行号; _ 6. 移动到第 58 行,向右移动 40 个字符,请问您看到的双引号内是什么目录? _ 7

2017-03-30 12:54:19 830

转载 Linux进程调度原理

Linux进程调度的目标     1.高效性:高效意味着在相同的时间下要完成更多的任务。调度程序会被频繁的执行,所以调度程序要尽可能的高效;     2.加强交互性能:在系统相当的负载下,也要保证系统的响应时间;     3.保证公平和避免饥渴;     4.SMP调度:调度程序必须支持多处理系统;     5.软实时调度:系统必须有效的调用实时进程,但不保证一定满足

2017-03-22 17:34:23 576

转载 Linux面试题

**1、**PCB进程控制块可以用locate sched.h命令来查看位置。  2、一个进程默认打开文件的个数1024。  3、进程和线程的差别  线程是指进程内的一个执行单元,也是进程内的可调度实体.  与进程的区别:  (1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位  (2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行  (3)拥

2017-03-22 17:29:14 444

原创 linux根目录下个文件夹作用及tar命令下C,V,Z,F作用

1./tmp 目录存放程序在运行时产生的信息和数据。但在引导启动后,运行的程序最好使用    2./ b o o t目录存放引导加载器(bootstrap loader)使用的文件,如l i l o,核心映像也经常放在这里,   而不是放在根目录中。但是如果有许多核心映像,这个目录就可能变得很大,这时使用单独的   文件系统会更好一些。还有一点要注意的是,要确保核心映像必须在i d e硬

2017-03-21 22:19:07 1507

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除