排序:
默认
按更新时间
按访问量

typedef和define的区别

1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#defin...

2018-09-06 17:02:09

阅读数:7

评论数:0

聊天室

1、文件传输:fprintf和fwrite的区别 fprintf(fp, "%d", buffer); 是将格式化的数据写入文件 fprintf(文件指针,格式字符串,输出表列); fwrite(&buffer, sizeof(int...

2018-08-28 14:10:26

阅读数:15

评论数:0

长连接&短连接以及心跳包

一、长连接与短连接 1、长连接: 指在一个TCP连接上可以连续发送多个数据包,         在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接;         一般需要自己做在线维持。  2、短连接: 指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此...

2018-08-22 15:01:54

阅读数:27

评论数:0

并发服务器之多线程和多路复用(select)的区别

一、I/O复用模型 1、IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:   (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。   (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少...

2018-08-22 11:31:58

阅读数:139

评论数:0

C++多继承模型的内存布局

对于多继承情况 考虑示例代码 1 2 3 struct Base1 {...}; struct Base2 {...}; struct Derived : Base1, Base2 {...}; 有如下内存布局 首...

2018-08-22 10:19:23

阅读数:14

评论数:0

运算符优先级口诀

一共有十五个优先级:  1   ()  []  .  -> 2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof  3   * / % 4   + -  5   &a...

2018-08-13 09:32:26

阅读数:13

评论数:0

ReadDir()线程不安全函数

一、readdir函数:       struct dirent *readdir(DIR *dirp);  The  data  returned by readdir() may be overwritten by subsequent calls to readdir() for the...

2018-08-10 16:13:18

阅读数:30

评论数:0

linux--man 1/2/3查找的区别

man (1) 命令 man 2 xxx用于系统调用 man 3 xxx 用于库函数 如果某个库函数没有同名的命令和系统调用,那才能直接用man xxx

2018-08-10 10:52:45

阅读数:23

评论数:0

0809线程

一、线程取消 (1)int   pthread_cancel(pthread_t   thread)    发送终止信号给thread线程,如果成功则返回0,否则为非0值。发送成功并不意味着thread会终止。   (2)pthread_setcanceltype() 函数用来设置当前线程的“...

2018-08-10 10:17:51

阅读数:13

评论数:0

文件流操作:fseek()、rewind()、fprintf()、fscanf()

1、fseek() int fseek(FILE * stream, long offset, int whence); 函数说明: fseek()用来移动文件流的读写位置. 1、参数stream 为已打开的文件指针, 2、参数offset 为根据参数whence 来移动读...

2018-08-06 10:44:09

阅读数:50

评论数:0

seekg()/seekp()与tellg()/tellp()的用法详解

对输入流操作:seekg()与tellg() 对输出流操作:seekp()与tellp() 下面以输入流函数为例介绍用法: seekg()是对输入文件定位,它有两个参数:第一个参数是偏移量,第二个参数是基地址。 对于第一个参数,可以是正负数值,正的表示向后偏移,负的表示向前偏移。而第二个参数可以是...

2018-08-04 10:08:17

阅读数:10

评论数:0

Linux即时通信软件项目chatroom知识点整理(五)

21、TCP是如何保证可靠数据传输的 1)应用数据被分割成TCP认为最适合发送的数据块。 这和UDP完全不同,应用程序产生的数据报长度将保持不变(将数据截断为合理的长度)  2)超时重传:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报...

2018-08-01 11:11:28

阅读数:31

评论数:0

Linux即时通信软件项目chatroom知识点整理(四)

17、如何实现文件传输?如果文件过大,如何保证数据正确地传输? (1)客户端之间传输文件 A、B两用户登录服务器成功之后,便可使用文件传输API接口传送文件,当A使用API接口:BRAC_TransFile向B发送文件时,B收到文件后,将触发B的回调函数:文件传输回调函数(参考:BRAC_Se...

2018-07-30 21:15:19

阅读数:29

评论数:0

Linux即时通信软件项目chatroom知识点整理(三)

11、谈谈你对进程的理解?内核是如何管理进程的? (1) 进程是多任务并发的基本概念。进程是操作系统的核心,所有基于多道程序设计的操作系统都建立在进程的概念上。 进程是操作系统的概念。是操作系统资源分配和调度的基本单位,在执行一个程序时,对于操作系统来说就是建立了一个进程。在这个过程中,伴随着...

2018-07-29 20:18:38

阅读数:157

评论数:2

Linux即时通信软件项目chatroom知识点整理(二)

6、为什么数据库选择sqlite?还有那些嵌入式数据库?特点是什么? (1)SQLITE功能简约,小型化,追求最大磁盘效率;只是单机上用的,数据量不是很大,需要方便移植或者需要频繁读/写磁盘文件的话,就用SQLite比较合适. (2) 嵌入式数据库及其特点 *****************...

2018-07-28 21:31:17

阅读数:62

评论数:0

Linux即时通信软件项目chatroom知识点整理(一)

1、makefile的作用是什么? makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是--“自动化编译”,...

2018-07-26 20:15:32

阅读数:152

评论数:0

MakeFile

1、规则: 目标:依赖1 依赖2 命令*说明:使用命令,将依赖生成目标 注意:目标顶格写,命令前有一个TAB键,不能使用空格代替 命令执行条件: a. “依赖”文件 比 “目标”文件 新 b. 没有“目标”这个文件 满足上述条件之一,命名就会执行 2、简单的Makefile 在源文件下新建...

2018-07-26 19:44:29

阅读数:21

评论数:0

指针的一些复杂说明

● int p; -- 这是一个普通的整型变量  ● int *p; -- 首先从p处开始,先与*结合,所以说明p是一个指针,然后再与int结合,说明指针所指向的内容的类型为int型。所以p是一一个返回整型数据的指针。   ●int p[3] --首先从p处开始,先与结合,说明p是一一个数组,然后...

2018-07-26 19:11:33

阅读数:18

评论数:0

MadPlay项目中设计的知识点

一、wait和waitpid区别: 1.在一个子进程终止前,wait使调用者阻塞 2.waitpid有一个选择项,可以使调用者不阻塞 3waitpid可以等待指定的一个子进程,wait等待所有的子进程,返回任意一个终止的子进程状态。 子进程在运行中有暂停信号,如果想要显示暂停信号的信号码不能使用w...

2018-07-26 16:36:46

阅读数:43

评论数:0

PCB画板Tips

一、步骤 转载自https://blog.csdn.net/yiyunyaoling/article/details/64123101 二、Tips 1、放置元器件之前要考虑并预留出打孔的位置 2、VCC线30mil,引脚连线15mil 3、绘制原理图添加元器件时要edit,检查是否有对...

2018-07-21 14:21:04

阅读数:15

评论数:0

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