- 博客(29)
- 收藏
- 关注
原创 简答题4
1.四层网络模型与七层网络模型一、OSI七层模型OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。二、TCP/IP四层模型TCP/IP是一个四层的体系结构,主要包括:应用层、运输层、网际
2018-02-07 11:08:15
340
原创 简答题3
1.同步IO和异步IO的区别A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数发送一个消息给某个窗口,在对方处理完消息之
2018-02-05 18:57:53
292
转载 单片机中的几种通信方式
首先弄懂串行通信和并行通信以及串口通信和并口通信的概念。串行通行:它是一个概念,它是指数据一位一位地顺序传送,其特点就是通信线路简单,只要一对传输线就可实现双向通信,适用于远距离通信,但传输速度慢。它包括普通的串口通信,I2C,SPI,UART...串口通信:是一种实际通信方式,但是我们可以几乎看成一样.串行接口:简称串口,或串行通信接口,或串行通讯接口(通常指com口)。
2018-02-05 15:51:56
5650
原创 简答题2
1. 简述数组与指针的区别1.数组是开辟一块连续的内存空间,数组本身的标示符代表整个数组,可以用sizeof取得真实的大小;指针则是只分配一个指针大小的内存,并把它的值指向某个有效的内存空间2.数组或是在静态存储区被创建(全局数组),或是在栈上被创建。数组名对应着,注意不是指向,一块内存,其地址与容量在生命期内保持不变(当然,使用了realloc()的不算),只有数组的内容可以改变
2018-01-30 16:27:56
259
原创 简答题1
1.系统调用与库函数的区别?库函数:在所有的ANSI编译器版本中。c库函数是相同的,它调用库函数中的一段程序(或函数),与用户程序相联系,在用户地址空间执行,它的运行时间属于用户时间,属于过程调用,调用开销较小。系统调用:各个操作系统的系统调用是不同的,它调用系统的内核服务,是操作系统的一个入口点,在内核地址空间执行,它的运行时间属于系统时间,需要在用户空间和内核环境间切换,开销较大。
2018-01-29 15:08:08
275
原创 初识单片机心得
近日来学习了单片机,在此有些学习心得想记录下来。1.单片机的最小系统大致包括单片机(芯片),复位电路,晶振电路,下载电路。这些电路在PCB上都是连接在一起的,其他的一些模块,比如led,数码管,按键等都是独立模块,需要用杜邦线根据实际需要连接起来。2.关于数码管的动态扫描,想让8位数码管每个数码管都同时变化显示数字,就要用到数码管的动态扫描,CPU以极短的时间重复着主程序,使人眼产生视觉停
2018-01-28 21:14:51
344
原创 简答题
1.关键字static的作用是什么?1)static修饰全局变量时,该全局变量只能在本文件中使用;2)static修饰局部变量时,将其放于BSS段中,只定义一次,只分配一次空间。改变其生命周期至程序结束。3)static修饰函数时,函数为静态函数,只能在本文件中使用。2.程序的内存分配,即一个由C/C++编译的程序占用的内存分为几个部分?BSS段:存放未初始化的全局变量和初始化
2018-01-25 19:20:53
282
原创 Linux 网络编程
1. Socket有哪些分类流式Socket:用于TCP通信;数据报Socket:用于UDP通信;原始Socket:用于新的网络协议实现的测试等 2. 主机名和地址之间转化的函数有哪些?名字和数值地址间的转换:gethostbyname,gethostbyaddr;它们都可以实现IPv4和IPv6的地址和主机名之间的转化,其中gethostb
2017-12-07 17:17:00
126
原创 Linux 网络编程
1. 简述TCP/IP协议 TCP/IP是网络中使用的基本通信协议,TCP/IP实际上是一组协议,它包括上百个能完成各种功能的协议,而TCP协议和IP协议是保证数据完整传输的的两个基本重要协议。通常说TCP/IP是Internet协议簇,而不只是TCP和IP协议。 2. 点分十进制表示法是什么? 互联网上的每个接口必须有唯一的Internet
2017-12-07 12:43:35
151
原创 关于进程和线程的几个问题
1、简述Linux进程内存空间分为哪几个段?作用分别是什么?Linux中的进程包含3个段,分别为“数据段”、“代码段”和“堆栈段”。“数据段”存放的是全局变量、常数以及动态数据分配的数据空间;“代码段”存放的是程序代码的数据。“堆栈段”存放的是子程序的返回地址、子程序的参数以及程序的局部变量等。 2. 如何查看进程的信息(线程数):使用ps -elf查看
2017-12-07 11:56:18
497
原创 Linux 多线程编程
1. 什么是线程线程是进程的一个实体,是CPU调度和分配的基本单位,它是比进程更小的能独立运行的基本单位,一个进程可以包含多个线程2. 线程里的内容一个指向当前被执行命令的指令指针;一个栈;一个寄存器值的集合,定义了一部分描述正在执行线程的处理器状态的值;一个私有的数据区3. 线程与进程的区别一个程序至少有一个进程,一个进程至少有一个线程.线程的划分
2017-12-01 17:00:46
147
原创 linux 进程间通信(2)
1.可以用什么函数来实现信号的安装? signal()函数:用于传送信号给指定的进程; sigaction()函数:用于查询或设置信号处理方式。 2.使用信号的注意事项1)防止不该丢失的信号丢失;2)考虑到程序的可移植性,应该尽量采用POSIX信号函数;3)为了增强程序的稳定性,在信号处理程序中应当使用可再入函数 3.进程处理信号的方式有哪些? 忽略信号:即
2017-12-01 10:11:09
166
原创 Linux 进程间通信
1.Linux进程间通信的目的? 数据传输:一个进程需要将他的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间; 共享数据:多个进程想要共享数据,一个进程对共享数据的修改,别的进程应该立刻看到; 通知事件:一个进程需要向另一个或一组进程发送消息,通知它发生了某种事件(如进程终止前要通知父进程); 资源共享:多个进程之间共享同样的资源。为了做到这一点
2017-12-01 09:52:41
161
原创 linux学习 进程控制编程
1. 什么是进程?进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 2.为何需要多进程?为何需要并发?有了并发技术,就是可以在同一时间同时执行多条任务的技术,程序不仅可以规规矩矩的一条线执行,可以多条线同时执行,这样就可以实现更加强大的功能,提供更多的服务,所以并发是必不可少的。 3. 进程的分类
2017-11-24 15:20:24
184
原创 linux学习 文件操作
1. linux中文件系统有什么特点?1)linux下一切皆文件,目录也是文件,设备也是文件。2)Linux的文件类型有普通文件,目录文件,链接文件,块设备,字符设备,Socket,管道文件。通过”ls-l”可以查看文件类型和属性– 普通文件;d 目录文件;l 链接文件;c 字符设备;b 块设备;p 管道文件;f 堆栈
2017-11-24 14:01:41
154
原创 栈和队列
1.什么是栈?栈是限定仅在表尾执行插入和删除操作的线性表。这里的表尾就是栈顶,栈底不执行这些操作。2.最先进栈的元素一定最后出栈吗?不一定,举个简单的例子:把1, 2, 3按序进栈,可以1进栈,再出栈,2进栈,再出栈,3也是如此。1是最先进栈的元素,但不是最后出栈的。
2017-11-02 18:16:20
214
原创 linux c 预处理和结构体
1.预处理有哪些类型?C语言提供多种预处理功能,主要处理#开始的预编译指令,如宏定义(# define),文件包含(# include),条件编译(# ifdef)等(以*开头的都是预处理命令)。2.条件语句和条件编译有什么区别?条件编译是C语言中预处理部分的内容,它是编译器编代码时最先处理的部分,。条件编译里面有判断语句,如#if,#else,#endif。它的意思是如果宏条件如
2017-10-26 21:28:18
212
原创 线性表
1.线性表是什么?线性表是一个序列,即它的元素是有顺序的,第一个元素没有前驱元素,最后一个元素没有后继元素,其他的元素都有一个前驱元素和后继元素。线性表元素的个数就是线性表的长度。当元素个数为0时,线性表为空表。非空线性表的元素都有一个确定的位置,a1是第一个,an是最后一个,ai是第i个元素。所以线性表的定义是:零个或多个数据元素的有限序列。2.线性表的抽象数据类型定
2017-10-26 10:40:36
2554
原创 linux 函数
1.怎么定义一个函数?函数定义需要有函数类型(即函数返回值类型),函数名和函数参数。例如定义一个函数:int fun(int a){}即该函数额类型为int型,名为fun,有一个int型的参量a。2.函数的定义和声明有什么关系?函数的声明就是声称一个函数的名字,只是说明一个函数的名字,不涉及函数的实现,即没有函数体。函数的定义就是确定一个函数的意
2017-10-19 22:03:09
282
原创 linux 数组和指针
1.数组和指针分别怎么定义?数组:char a【20】={0};二维数组:char a【3】【4】={0};定义数组时,数组的长度是一定值,不能是一个变量,否则无法通过编译。注意,数组的下标总是从0开始。 指针:char *p;如果p=a;(a是一个字符数组)那就是p指向字符数组a中的字符串,且指向第一个元素。2.指针和数组有什么联系?1).当数组出现在
2017-10-19 19:15:17
297
原创 linux shell脚本
shell是一个命令解析器使用vim test.sh创建一个脚本文件并进行编辑,开头类似于c语言 即#!/bin/sh或者#!/bin/bash如图:其中的echo命令是输入一句话 echo “hello world” 或者 a=“hello world” echo $a 也可以ec
2017-10-14 15:44:42
141
原创 linux c 语句
1.c语言中,程序分为几种基本结构,有哪些语句来实现?c语言中,程序分为顺序结构、分支结构、循环结构。通过if,switch,for,while,do-while,continue,break,return语句来实现这三种基本结构。2.什么是语句?语句就是由表达式末尾加上一个分号例如 x=x+y;x++;等或者前面没有任何表达式,只有一个分号即为空语句 如;可以作为延时来用。
2017-10-08 19:27:43
272
原创 linux c 运算符 表达式
1.运算符有哪些?c语言的运算符可分为以下几列:算术运算符:用于数值运算,包括+、-、*、/、%、++、--关系运算符:用于比较运算,包括>、=、逻辑运算符:&&、||、!位操作运算符:参与运算的量,按二进制位参与计算,&,|,!,~,^,>赋值运算符:=,还有一些复合算数赋值和复合位运算赋值。条件运算符(?:)逗号运算符:,指针运算符:取内容*和取地址&字
2017-10-06 12:37:12
443
原创 linux c 数据类型
1.为什么数据类型间可以强制转换?变量的值是变量所对应的内存区域内存放的二进制序列,变量的值不会因为变量的类型发生改变而改变,当变量转换为对应的类型时,内存区域内的二进制序列以该类型的形式翻译出来。2.什么是全局变量和局部变量?局部变量亦称内部变量,是在函数内部定义的变量,其作用域只限于函数内部,离开函数后使用该变量即为非法。全局变量亦称外部变量,是在函数外定义的变量,其作用域在整
2017-10-05 16:18:19
782
原创 linux 系统安全命令
虽然 Linux 和 Windows NT/2000 系统一样是一个多用户的系统,但是它们之间有不少重要的差别。对于很多习惯了 Windows 系统的管理员来讲,如何保证 Linux 操作系统安全、可靠将会面临许多新的挑战。本文将重点介绍 Linux 系统安全的命令。passwd1. 作 用passwd 命令原来修改账户的登陆密码,使用权限是所有用户。2.格式passwd
2017-10-04 23:11:30
243
原创 linux 系统管理命令
对于 Linux 系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux 系统管理的命令是它正常运行的核心。熟悉了 Linux 常用的文件处理命令以后,这一讲介绍对系统和用户进行管理的命令。df1.作用df 命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。2.格式df [options]3.主要参数-s:对每个 Name
2017-10-04 21:56:28
244
原创 linux 常见文件处理命令
Linux系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。 Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。 下面介绍几个常用的文件处理命令fil
2017-10-04 15:09:16
269
原创 linux make和gdb
在实际过程中,通过gcc来编译程序是很低效的,原因有以下两点:1.程序往往由多个源文件组成,源文件越多,gcc命令行越长。同时各种编译规则会增加编译的复杂度。2.在调试过程中,每次调试一般只会修改部分源文件,但是用gcc命令,会把没有修改的源文件也一起编译,这样会影响编译的整体效率。gcc提供了半自动化的工程管理器Make。使用make命令前,需编写编译规则至Makefile这个文
2017-10-03 16:42:45
258
原创 linux gcc
gcc命令是用来编译程序的。通常做法为 gcc test.c -o test 将test.c文件指定生成可执行文件test。也可以直接采用gcc test.c ,默认生成可执行文件a.out。编译有4个步骤:1.gcc -E test.c -o test.i 将test.c预处理输出test.i文件。2.gcc -S test.i -o test.s 将预处理输出文
2017-10-03 15:52:30
332
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人