曾几何时,只是一直在调用库函数fork,只知道它创建一个子进程,并且子进程返回值是0,父进程返回值是子进程pid。但是一直没有深究内核代码,今天终于使用gdb调试了一把fork的内核代码,下面就让我们一探究竟吧。
1.创建进程的本质是什么?
根据目前理解,其实就是构造了PCB,这个PCB会唯一标示一个进程的存在,并且会构建子进程的页目录和页表等等。
2.为什么fork()调用会有2个返回值,...
分类:
系统相关 时间:
2014-05-22 10:40:01
阅读次数:
404
编程题:scanf()函数的使用#include<stdio.h>main(){intx,y,a1,b1,a2,b2,c2;scanf("x=%d,y=%d",&x,&y);scanf("%d,%d,%d",&a1,&b1,&c1);scanf("%d,%d,%d",&a2,&b2,&c2);printf("x=%d,y=%d\n",x,y);printf("a1=%d,b1=%d,c1=%d\n",a1,b1,c1..
分类:
其他好文 时间:
2014-05-20 21:06:38
阅读次数:
352
个人觉得ST的库函数用起来还是挺不错的,之前都是使用自己写的函数,容易改出错,以下是验证过的,TIM1定时100微妙中断一次。
void TIM1_TimeBaseInit(u16 TIM1_Prescaler,
TIM1_CounterMode_TypeDef TIM1_CounterMode,...
分类:
其他好文 时间:
2014-05-18 13:27:43
阅读次数:
306
void TIM4_TimerInit(u8 Timer4Time)
{
assert_param(IS_TIM4TIMERTIME_OK(Timer4Time));
TIM4_DeInit();//复位TIM4所有参数
TIM4_TimeBaseInit(TIM4_PRESCALER_16,Timer4Time);//16M/16= 1M CYCLE=1/1=1U 100us...
分类:
其他好文 时间:
2014-05-18 09:20:59
阅读次数:
356
怎样把数字转为字符串(与atoi相反)?有itoa函数吗?
用sprintf就可以了:
sprintf(string, "%d", number);同理,也可以同sprintf把long型或浮点型转换成字符串(使用%ld或%f),也就是说,可以把sprintf看成是atol或者atof的
反函数。
怎样在日期上加n天?怎样取得两个日期的时间间隔?
第一个问题,mktime接受没有...
分类:
编程语言 时间:
2014-05-18 06:20:21
阅读次数:
356
【题目】
Implement strStr().
Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.
【题意】
实现库函数strStr(), 功能是在字符串haystack中找出目标串needle第一次出现的索引位
【思路】
字符串的匹配,可以用暴力解法,但不推荐。一般使用KMP算法求解。
简要介绍一下KMP的思想:
...
分类:
其他好文 时间:
2014-05-18 04:10:04
阅读次数:
244
//本文选择16M内部RC震荡,分频为1 即系统时钟为16M
void CLK_HSICmd(FunctionalState NewState)
{
/* Check the parameters */
assert_param(IS_FUNCTIONALSTATE_OK(NewState));
if (NewState != DISABLE)
{
...
分类:
其他好文 时间:
2014-05-18 03:02:35
阅读次数:
272
为什么需要系统调用?主要有以下两方面原因。(1)系统调用可以为用户空间提供访问硬件资源的统一接口,以至于应用程序不必去关注具体的硬件访问操作。比如,读写文件时,应用程序不用去管磁盘类型,甚至于不用关心是哪种文件系统。(2)系统调用可以对系统进行保护,保证系统的稳定和安全。系统调用的存在规定了用户进程...
一、优化的品质
1.简练;2.可读性强;3.模块化;4.层次性;5.设计良好;6.高效;7.优雅;8.清晰。
二、常见的编程规范
1. 基本要求
· 结构清晰,简单易懂,单个函数不超过100行;目标明确,代码精简
· 尽量使用标准库函数和公共函数
· 不随意定义全局变量,尽量使用局部变量
· 使用括号,以避免二义性
2. 可读性要求
· 可读性第一,效率第二
· 保证注释与代码...
分类:
移动开发 时间:
2014-05-15 14:59:33
阅读次数:
468
/*
函数:可以有返回值得命名的PL/SQL子程序,必须有返回值
关键字:function return
*/...
分类:
数据库 时间:
2014-05-15 14:49:18
阅读次数:
359