系统
文章平均质量分 72
zhumawinnner
这个作者很懒,什么都没留下…
展开
-
STDIN_FILENO 与stdin的区别
1.STDIN_FILENO的作用STDIN_FILENO属于系统API接口库,其声明为 int 型,是一个打开文件句柄,对应的函数主要包括 open/read/write/close 等系统级调用。操作系统一级提供的文件API都是以文件描述符来表示文件。STDIN_FILENO就是标准输入设备(一般是键盘)的文件描述符。例:(一次一个)#include"csapp.h"int m转载 2014-11-14 15:54:34 · 3837 阅读 · 0 评论 -
CentOS安装
主要是看的这篇 http://www.it165.net/os/html/201309/6191.html参考这篇 http://www.centoscn.com/image-text/setup/2014/0425/2871.htmlcentos7的问题可参考这篇的28楼原创 2015-04-11 22:09:50 · 384 阅读 · 0 评论 -
蛋疼的浮点数
浮点型和实型:实型是数学的说法,只采用十进制,而浮点型则是计算机的表示小数的方法,名称意味着小数点的位置是浮动的.标准C允许浮点数使用后缀(F or f),比如356f和356.是等价的. 先来明确几个概念:位模式:计算机中二进制的0、1代码所组成的数字串.浮点标准: ,在浮点数中,底数一直为2.,其中e是无符号的8或16位数.尾数(域):也叫有效数,是一个二进制小原创 2014-10-30 17:17:20 · 717 阅读 · 0 评论 -
C语言编译过程
编译器 编译器只是一个程序,它可以将源代码转换为可执行代码。即生成目标文件,但这个文件还不能直接执行,因为它没有与硬件相关的一些库文件、启动文件等。链接器 链接器将系统的标准启动代码(与运行环境的硬件平台有关)、库代码(相当于系统提供给用户的API)链接到编译所产生的目标文件中,这时所产生的文件才是适应于相应硬件平台的可执行文件。 正文:编译,编译程序读取源程序(字转载 2014-10-30 17:17:23 · 383 阅读 · 0 评论 -
《深入理解计算机系统》之Unix I/O函数
RIO包健壮地读写函数式RIO包提供两类不同的函数:1、不带缓冲的输入输出函数:这些函数直接在存储器和文件之间传送数据,没有应用级缓冲区。2、带缓冲的输入函数(注意没有输出函数):文件的内容缓存在(类似于像printf这样的标准I/O函数提供的缓冲区)应用级缓冲区这里主要针对文件I/O,因为标准I/O本身就是带缓冲的,我们在对文件进行读写操作时,一般会优先使用标准的Io函数,但是在原创 2014-11-14 16:36:44 · 858 阅读 · 0 评论 -
位标志与位字段
如果你正在编写一个课程管理系统,你会以什么样的形式来表示你今天哪些节有课哪些节没课呢?比如一天有12节课,如下图所示 可能大家会问,为什么只是记录哪些节有课,哪些节没课呢?这样的信息有什么作用呢?当然有用,比如你要查找某同学今天上午1、2节是否有课,又比如在排课系统中,把某门课排到星期二下午6、7节,首先就要确定这两节课是否已经分配给了其他课程。。。。。。我想大部分人最初能想到转载 2014-12-01 09:37:38 · 1460 阅读 · 0 评论 -
Computer System:A Programmer Perspective
1.要注意,小端模式时,书写字节序列和书写数字序列的顺序是相反的。(p30)2.强制类型转换: int x,*p; p=&x; p为指向x的指针,类型为 int *; (char*)p; 强制转换p为指向char数据类型的指针!注意,此时p的值并未改变(指向的数据的地址),即p的值仍然是一个占用四个字节的地址量,只不过被强制类型转换后如果想移动p原创 2014-10-30 17:17:09 · 1221 阅读 · 0 评论 -
为什么C语言中bool型变量占用一个字节
C99标准新增bool型数据,占用一个字节,不满8bit的部分(可能)会填0对齐。1.效率:CPU 一下子就能处理 32bit or 64bit的数据,所以直接填满了来处理,这样可能效率更高。比如说,有的目标平台处理双字节的速度比单字节要快,于是很多单字节数据类型就可以用自定义一个双字节类型代替。bool亦如是,只不过是把自定义(成单字节数据)这件事转给编译器做了而已。2.寻址:如果要是有只原创 2014-10-30 17:17:43 · 21893 阅读 · 0 评论 -
《深入理解计算机系统之套接字(socket)》
套接字接口概述1.套接字原创 2014-11-14 18:17:33 · 907 阅读 · 0 评论 -
堆和栈的区别(windows内存管理)
注意本博的另一篇博文《调用函数的相关注意点》(栈)跟本文有密不可分的关系。链接:http://blog.sina.com.cn/s/blog_72e8bb070102v3u9.html 一、预备知识—程序的内存分配:一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的转载 2014-10-30 17:17:32 · 676 阅读 · 0 评论 -
OSI七层模型与TCP/IP协议(族)
1. OSI参考模型的最大作用是降低网络的复杂性,将复杂的网络问题简单化,以便快速定位和解决网络故障。2. OSI参考模型是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层,每一层都有相关的物理设备,比如路由器,交换机。我们举个例子:现在两台主机不能通信,原因可能有很多,那么我们就可以根据OSI参考模型的7层(由低到高,物理层,数据链路层,网络层,会话层,表示层,应用层)来发现故障,原创 2014-11-15 14:53:50 · 656 阅读 · 0 评论 -
信号量与互斥锁
这是多线程并发两个非常重要的概念,二者有很亲密的关系,但又不相同。1.概念: 临界区:临界区是指并发进程中与共享变量有关的程序段 ——关键程序段 信号量s是非负整数的全局变量,表示可用资源数量(我们可以引申,当它的值小于0时,其绝对值表示等待使用该资源的进程个数) 值得注意的是,信号量的值能且只能由两种特殊的操作即P(P操作原语)和V(V操作原语)来处理: P(原创 2014-11-16 21:18:06 · 760 阅读 · 0 评论 -
为什么要用补码?
在计算机系统中,数值一律用补码来表示和存储。——百度百科首先要明确一个前提:人类是喜欢简单的,他们不希望增加硬件复杂度以求得全面的运算体系,如计算机既做加法,也做减法,如果分开做,那么必然会增加硬件成本,这是我们刻意避免的,那么怎么来解决这个问题呢?答:采用一种巧妙的编码方式,使得计算机做减法和加法是一样的硬件电路,我们采用的方法是二进制串的首位不再表示数值,而是表示正负,从而使得符号位和原创 2014-10-30 17:17:13 · 976 阅读 · 0 评论 -
fflush(stdin)与fflush(stdout)
fflush()的作用是用来刷新缓冲区,fflush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃;fflush(stdout)刷新标准输出缓冲区,把输出缓冲区里的东西强制打印到标准输出设备上。 fflush(stdin)不太常用,在有些编译器中是错误的用法,可以用以下方法替代:while(getchar()!='/n'); fflush(stdout)在单转载 2014-11-15 17:03:02 · 8194 阅读 · 1 评论 -
软件安装/程序编译过程
转自阮一峰博客文章源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include stdio.h>int main(void){ fputs("Hello, world!\n", stdout); return 0;}要先用编译器处理一下,才能运行。$ gcc test转载 2015-07-06 23:20:10 · 989 阅读 · 0 评论