摘要: 物理层链路层网络层解决的问题 物理层(传输比特流) 物理层的主要任务是确定与传输媒介的接口有关的一些特性。比如网线的材料呀,引脚的特性,电压的范围等。目的是屏蔽物理设备的差异使数据链路层感觉不到硬件的差异。 数据链路层(传输帧) 封装成帧、透明传输、差错检验。 数据链路层 数据链路层实现实体之间数据阅读全文
posted @ 2017-11-16 21:39 青儿哥哥 阅读(2) 评论(0) 编辑
摘要: C语言中return和exit的区别 exit用于结束进程,返回的状态码是给操作系统使用或父进程使用的。return是堆栈返回,返回的值是给主调函数用的。主线程结束前会默认调用exit结束进程。 exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输阅读全文
posted @ 2017-11-14 16:27 青儿哥哥 阅读(3) 评论(0) 编辑
摘要: 中断的一些知识 什么是中断 中断指处理机处理程序运行中出现的紧急事件的整个过程.程序运行过程中,系统外部、系统内部或者现行程序本身若出现紧急事件,处理机立即中止现行程序的运行,自动转入相应的处理程序(中断服务程序),待处理完后,再返回原来的程序运行,这整个过程称为程序中断。 CPU要做的事情: 改变阅读全文
posted @ 2017-11-14 15:59 青儿哥哥 阅读(4) 评论(0) 编辑
摘要: l 父进程通过wait和waitpid等函数等待子进程结束,这会导致父进程挂起 l 如果父进程很忙,那么可以用signal函数为SIGCHLD安装handler,因为子进程结束后,父进程会收到该信号,可以在handler中调用wait回收 l 如果父进程不关心子进程什么时候结束,那么可以用signa阅读全文
posted @ 2017-11-14 15:37 青儿哥哥 阅读(0) 评论(0) 编辑
摘要: make工具和makefile文件 make工具和makefile文件简介 make命令和makefile文件的结合提供了一个在项目管理领域十分强大的工具。它不仅常被用于控制源代码的编译和链接,而且还用于手册页的编写以及将应用程序安装到目标目录。 makefile文件由一组依赖关系和规则构成。每个依阅读全文
posted @ 2017-11-14 15:21 青儿哥哥 阅读(9) 评论(0) 编辑
摘要: gcc编译流程 一、 编译与处理指令: gcc -E hello.c -o a.c 如果不使用-o指定输出的文件,会默认输出到终端。所以建议使用同时使用-o选项。 还要注意:编译时会保留#pragma编译器指令,因为编译器需要使用它们。 二、 编译指令: 将C代码翻译成汇编代码 gcc -S hel阅读全文
posted @ 2017-11-14 11:19 青儿哥哥 阅读(4) 评论(0) 编辑
摘要: // test.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include using namespace std; //方法一是将结果保存在了另一个变量中,从a中取依次取最低位,放入放入ret的低位然后右移ret int reverse(int a) { int ret= 0; for(int i= 0;...阅读全文
posted @ 2017-11-14 10:04 青儿哥哥 阅读(8) 评论(0) 编辑
摘要: #include void *memcpy(void *memTo,const void *memFrom,size_t size) { if(memTo == NULL || memFrom == NULL) return NULL; char *p = (char *)memTo; char *q = (char *)memFrom; ...阅读全文
posted @ 2017-11-13 21:31 青儿哥哥 阅读(5) 评论(0) 编辑
摘要: #include char *strcpy(char *strDest,char *strSrc) { if(strDest == NULL || strSrc == NULL) return NULL; char *p =strDest; while(*strSrc != '\0') { *p = *strSrc; ...阅读全文
posted @ 2017-11-13 21:17 青儿哥哥 阅读(5) 评论(0) 编辑
摘要: #include #include #include void merge(int a[],int len1,int b[],int len2) { if(len1 <= 0 || len2 <= 0) return; int *c = (int *)malloc(sizeof(int) * (len1 + len2)); memset(c,0,siz...阅读全文
posted @ 2017-11-13 14:16 青儿哥哥 阅读(4) 评论(0) 编辑