Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

C语言变长数组之剖析

C语言变长数组之剖析

1、引言我们知道,与C++等现代编程语言不同,传统上的C语言是不支持变长数组功能的,也就是说数组的长度是在编译期就确定下来的,不能在运行期改变。不过,在C99标准中,新增的一项功能就是允许在C语言中使用变长数组。然而,C99定义的这种变长数组的使用是有限制的,不能像在C++等语言中一样自由使用。2、说明参考文献[1]中对变长数组的说明如下:C99 gives C programmers the ability to use variable length ...
Linux内核基础--事件通知链(notifier chain)

Linux内核基础--事件通知链(notifier chain)

内核通知链1.1. 概述Linux内核中各个子系统相互依赖,当其中某个子系统状态发生改变时,就必须使用一定的机制告知使用其服务的其他子系统,以便其他子系统采取相应的措施。为满足这样的需求,内核实现了事件通知链机制(notificationchain)。通知链只能用在各个子系统之间,而不能在内核和用户空间进行事件的通知。组成内核的核心系统代码均位于kernel目录下,通知链表位于kernel/notifier.c中,对应的头文件为include/linux/...
Linux中1号进程的创建剖析

Linux中1号进程的创建剖析

在init/main.c中的main函数中可以发现如下语句:if (!fork()) { init();//1号进程要运行的代码}for(;;) pause();//0号进程要运行的代码上面的注释中已经写的很清楚了,1号进程的创建是通过调用fork函数创建的,然后运行相应的init()函数,init函数即为进程1的主体,fork函数的声明位于include/unistd.h中int fork(void);可知fork函数是一个系统调用,其实现是通过相应的汇...
Linux中0号进程的创建

Linux中0号进程的创建

Linux中1号进程是由0号进程来创建的,因此必须要知道的是如何创建0号进程,由于在创建进程时,程序一直运行在内核态,而进程运行在用户态,因此创建0号进程涉及到特权级的变化,即从特权级0变到特权级3,Linux是通过模拟中断返回来实现特权级的变化以及创建0号进程,通过将0号进程的代码段选择子以及程序计数器EIP直接压入内核态堆栈,然后利用iret汇编指令中断返回跳转到0号进程运行。相关阅读:Linux中1号进程的创建剖析 http://www.linuxi...
C++类一定有构造函数吗

C++类一定有构造函数吗

1:任何类如果没有定义默认构造函数,就会合成出来?2:合成出来的默认构造函数会明确设定类内每一个成员的值?3:如何去证明呢?如果你对1、2回答的都是不是,请跳过阅读,以免浪费你的时间对于问题1与2其实答案都是未必,C++标准是这样写的默认构造函数是由编译器在需要的时候将其合成出来,这里强调的是需要,而非必需,以程序示例:#include<iostream>#include<string>using namespace std;cla...
Google 2013年校园招聘笔试题(北京)

Google 2013年校园招聘笔试题(北京)

一:单选题1:使用C语言将一个1G字节的数组从头到尾全部设置为’A’,在一台典型的当代PC上,需要花费的CPU时间的数量级最接近:(B)A 0.001秒 B 1秒 C 100秒 D 2小时2:在某些极端要求性能的场合,我们需要对程序进行优化,关天优化,以下说法正确的是(D)A 将程序整个用汇编语言改写会大大提高程序性能B 在优化前,可以先确定哪部分代码最费时,然后对这部份代码用汇编改写,使用汇编的语句越少,程序运行的越快。C:使用汇...
<< 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 >>