自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 一个程序员的思考

你要懂得taste other's codes   handle well with your teams   tell somebody else ,what you going to do ,and how you plan to realize it  detailed   solve complex problem with clear codes

2013-01-30 08:36:18 350

原创 strcat、strcpy、strcmp的实现,以及有关字符串处理需要注意的地方

注释:以下所有测试在freescale codewarrior中完成//将字符串t复制到字符串s//sizeof(s) >= sizeof(t)void strcpy(char* s, char*t){ while(*s++ = *t++);}我们在不同的字符串下测试函数的性能1: char s[] ="hello"; //sizeof(s) == 6 char t[]

2013-01-29 15:16:55 573

原创 陈皓 酷壳牛人

http://blog.csdn.net/haoel

2013-01-25 17:26:50 946 1

转载 ctrl+z ctrl+c ctrl+\ ctrl+d

ctrl+z ctrl+c ctrl+\ ctrl+dctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。ctrl-\ 发送 SIGQUIT 信号给前台进程组中的所有进程

2013-01-25 16:50:59 652

原创 算法牛b

http://blog.csdn.net/v_JULY_v

2013-01-25 16:33:43 566

转载 c函数返回指针

我有一个程序是这样的:int main(){ int *p; int i; int*fun(void); p=fun(); for(i=0;i<3;i++) { printf("%d\n",*p); p++; } return 0;};int* fun(void){ static int str[]={1,2,3,4,5}; int*q=st

2013-01-25 14:40:08 3637

转载 linux进程的用户ID,有效ID,保存的设置ID

一个系统启动后,用户login登录后,会产生一个用户进程,该进程和其它进程一样有7个id值:实际用户id,有效用户id,保存的设置ID(set-user-id),实际组id,有效组id,添加组id以及保存的设置组ID。这里只说uid,这三个id都来自登录名。至此我们有了一个用户shell进程,当执行程序时,通常由fork+exec函数来做。由用户进程fork出来的子进程将继承父进程的uid和eui

2013-01-24 16:31:12 712

转载 fcntl的close-on-exec标志

每个文件描述符都有一个close-on-exec标志。默认情况下,这个标志最后一位被设置为 0。这个标志符的具体作用在于当fork的其他进程中调用exec()族函数时,在调用exec函数之前为exec族函数释放对应的文件描述符。我们来看一下具体的实例。这是两个程序:[c-sharp] view plaincopyprint?/

2013-01-24 09:44:16 374

转载 ucos2相关文章链接

http://blog.csdn.net/wchp314/article/category/630285

2013-01-23 15:09:45 332

转载 内联函数

内联函数就是小型函数,牺牲空间来节省函数调用的开销,一般用作比较小的函数,即函数内部没有循环、开关语句等。内联函数被发明出来就是为了取代C中的宏,因为宏是单纯的替换而没有类型检查所以经常出毛病,比如:#define MAX(a, b) (a) > (b) ? (a) : (b)如果你在代码中这样写:int a = 5, b = 10;// int max = MAX(++a, b)

2013-01-23 09:04:45 385

转载 Autosar 规范的一个操作系统

http://hi.baidu.com/parai

2013-01-23 08:49:08 2756 2

原创 fgets fputs

fgets:fgets函数用来从文件中读入字符串。fgets函数的调用形式如下:fgets(str,n,fp);此处,fp是文件指针;str是存放在字符串的起始地址;n是一个int类型变量。函数的功能是从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符。因

2013-01-10 16:56:22 494

转载 Linux上的终端设备

在Linux系统中,终端设备非常重要,没有终端设备,系统将无法向用户反馈信息,Linux中包含控制台、串口和伪终端3类终端设备。在Linux系统中,终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写,Teletype是最早出现的一种终端设备,很像电传打字机,是由Teletype公司生产的。Linux中包含如下几类终端设备:1、串行端口

2013-01-10 15:53:51 413

转载 ioctl

一、 什么是ioctl。ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下: int ioctl(int fd, ind cmd, …);其中fd就是用户程序打开设备时使用open函数返回的文件标示符,cmd就是用户

2013-01-10 11:04:46 430

转载 文件描述符 文件描述标志 文件状态标志

文件描述符 File Descriptors文件描述标志 File Descriptors Flag文件状态标志 File Status Flag文件描述符是一个标示,非负整数,类似于windows里的句柄,为了与标准C保持一致(标准C里的文件的读写都是通过File Pointer)UNIX采用了这样的三级结构,我混淆于文件描述标志和文件状态标志,还是看

2013-01-10 10:17:06 540

原创 linux系统调用和普通函数调用

系统调用将比普通函数调用大多数情况下花费更多的时间,应为系统调用通常由SWI产生,将耗费更多的用户空间和内核空间切换的时间

2013-01-10 09:32:05 594

转载 Linux的inode的理解

文件名 -> inode -> device block  转自:http://www.ruanyifeng.com/blog/2011/12/inode.htmlhttp://blog.s135.com/post/295/ http://hi.baidu.com/leejun_2005/blog/item/d9aa13a53b3af6e99152ee7e.html

2013-01-05 16:44:03 350

原创 文件的打开标志 和 文件的访问权限 关系

文件权限,主要是针对不同权限级别的登录用户,设置不同的操作文件权限。而文件标志,是使用函数打开文件时候的选择。如果我设置文件访问权限是用户可以写,而文件的打开方式是以只读方式打开可不可以?可以打开,因为"r"模式之需要检测文件是否存在,若存在就成功打开,但是由于由于打开模式是只读,而权限里没有读,所以你打开后,不能读也不能写。

2013-01-05 14:21:00 444

转载 pipe

1、 管道概述及相关API应用1.1 管道相关的关键概念管道是Linux 支持的最初Unix IPC形式之一,具有以下特点:    管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;    只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);    单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件

2013-01-05 13:25:21 484

转载 dup、dup2介绍

dup和dup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr。这两个函数的 原形如下:#include     int dup( int oldfd );    int dup2( int oldfd, int targetfd )    利用函数dup,我们可以复制一个描述符。传给该函数一个

2013-01-05 13:08:34 378

转载 freopen()

当我们求解acm题目时,通常在设计好算法和程序后,要在调试环境(例如VC等)中运行程序,输入测试数据,当能得到正确运行结果后,才将程序提交到oj中。但由于调试往往不能一次成功,每次运行时,都要重新输入一遍测试数据,对于有大量输入数据的题目,输入数据需要花费大量时间。 使用freopen函数可以解决测试数据输入问题,避免重复输入,不失为一种简单而有效的解决方法。 函数名:fre

2013-01-05 09:05:35 563

转载 umask命令

的一般格式:  [1]umask [选项] [掩码]  该命令用来设置限制新文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行,并自动设置掩码改变默认值,新的权限将会把旧的覆盖。  选项及其含义如下。  -S:显示当前的掩码。  umask是从权限中“拿走”相应的位,且文件创建时不

2013-01-04 17:40:36 626

转载 守护进程

在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。目录

2013-01-04 17:34:34 404

转载 Linux进程状态与实时操作系统进程状态区别

一、Linux进程状态与实时操作系统进程状态区别linux上进程有9种状态:1. 可运行状态进程正在运行,或者已经就绪,随时由调度程序调度执行,进程刚被创建后处于可运行状态。2. 可中断等待状态进程被挂起处于等待状态,不会被调度执行;等待某个条件的形成或接受到信号 唤醒;进程获取资源之后就会进入可运行状态。3. 不可中断等待状态收到信号不唤醒和不可运行, 进程必

2013-01-04 16:30:24 651

转载 Linux系统调用

转自 from :http://blog.csdn.net/orange_os/article/details/74850691. Linux系统调用原理 1. Linux系统调用原理 2. 系统调用的实现3. Linux系统调用分类及列表4.系统调用、用户编程接口(API)、系统命令和内核函数的关系5. Linux系统调用实例6. Linux自定义

2013-01-04 16:26:14 757

转载 linux内核空间和用户空间详解

内存初始化后,内核的代码和数据就常驻内存中。linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFF

2013-01-04 16:13:15 564

转载 确保数据存入磁盘

在理想的情况下,系统崩溃、断电、磁盘访问失败这些情况是不会出现的,开发者编写程序时也不用为这些情况担忧。不幸的是,这些情况比我们想像的还经常出现。本文描述了数据是怎样一步步被写入磁盘上的,尤其是其中被缓冲的几个步骤。本文也提供了数据被正确写盘的最佳实践,以确保意外发生的时候,数据不会丢失。主要是面向 C 语言的,其中的系统调用也有其它语言的实现。I/O缓存考虑到开发系统

2013-01-04 16:05:53 733

转载 确保数据存入磁盘

原文:Ensuring data reaches disk在理想的情况下,系统崩溃、断电、磁盘访问失败这些情况是不会出现的,开发者编写程序时也不用为这些情况担忧。不幸的是,这些情况比我们想像的还经常出现。本文描述了数据是怎样一步步被写入磁盘上的,尤其是其中被缓冲的几个步骤。本文也提供了数据被正确写盘的最佳实践,以确保意外发生的时候,数据不会丢失。主要是面向 C 语言的,其中的系

2013-01-04 15:51:58 667

转载 linux 下 shell 有用的常识

本文采用问答式,介绍linux下shell常用的知识,希望对大家有帮助Q、如何查看当前使用什么shell。A: echo $SHELL 或ps都可以看到。Q、如何查看当前系统支持哪些shell。A: chsh --list-shells 或  cat /etc/shellsQ、如何更改当前shellA:chsh -s /bin/csh; 或编辑/et

2013-01-04 14:58:27 415

转载 daemon 进程为什么要fork两次

daemon进程是后台守护进程,有时候也叫精灵进程(agent).linux 下server都是daemon进程。相信大部分开发人员都知道如何去写一个daemon进程。但是另一方面,大部分人不知道为什么要这么做,不少人是从某个地方copy一个函数,拿来主义。但是具体为什么这么实现,却不是很透彻。  见过一些面试官或被面试人。很多人解释daemon进程存在的理由是因为僵死进程。或者输入输

2013-01-04 14:57:05 479

转载 linux下进程权限分析

在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解.但是对进程权限一般知之甚少。本文总结一下linux系统下进程权限问题和现象。   需要强调的是,本文是linux系统下讨论,因为linux和unix有很多不同的地方,并且各个不同的unix系统也有很多不同。    先开门见山的列出本文讨论对象:ruid(实际用户id: real userid)、euid(有效

2013-01-04 14:40:24 473

转载 漫谈linux文件IO

在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO。本篇文件打算详细全面,深入浅出。剖析文件IO的细节。从多个角度探索如何提高IO性能。本文尽量用通俗易懂的视角去阐述。不copy内核代码。    阐述之前,要先有个大视角,让我们站在万米高空,鸟瞰我们的文件IO,它们设计是分层的,分层有2个好处,一是架构清晰,二是解耦。让我们看一下下面这

2013-01-04 14:29:29 422

转载 linux 标准IO缓冲机制探究

一、什么是缓存I/O(Buffered I/O)缓存I/O又被称作标准I/O,大多数文件系统默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。1.缓存I/O有以下优点:

2013-01-04 14:02:01 423

转载 linux 文件IO和标准IO

2010-03-25 16:53 668人阅读 评论(0) 收藏 举报今日阅读《UNIX环境高级编程2》才发现一些以前从未注意过的细节。 linux编程使用的open、close、read、write等文件IO函数属于系统调用的,其实现方式是用了fctrl、ioctrl等一些底层操作的函数。而标准IO库中提供的是fopen、fclose、fread、fwrite等面向流对象的IO函

2013-01-03 22:56:53 1268

转载 Linux系统下如何查看及修改文件读写权限

查看文件权限的语句:  在终端输入:ls -l xxx.xxx (xxx.xxx是文件名)  那么就会出现相类似的信息,主要都是这些:-rw-rw-r--  一共有10位数  其中: 最前面那个 - 代表的是类型  first那三个 rw- 代表的是所有者(user) second那三个 rw- 代表的是组群(group)  last那三个 r-- 代表的是其他

2013-01-02 12:20:16 418

转载 linux硬链接与软链接

1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一

2013-01-02 11:49:46 425

转载 struct file

struct file ──字符设备驱动相关重要结构文件结构 代表一个打开的文件描述符,它不是专门给驱动程序使用的,系统中每一个打开的文件在内核中都有一个关联的struct file。它由内核在open时创建,并传递给在文件上操作的任何函数,直到最后关闭。当文件的所有实例都关闭之后,内核释放这个数据结构。struct file {/** fu_list becomes invali

2013-01-02 11:49:23 778

转载 struct inode

分类: linux数据结构一:简介inode 是 UNIX 操作系统中的一种数据结构,它包含了与文件系统中各个文件相关的一些重要信息。在 UNIX 中创建文件系统时,同时将会创建大量的 inode 。通常,文件系统磁盘空间中大约百分之一空间分配给了 inode 表。   有时,人们使用了一些不同的术语,如 inode 和索引编号 (inumber)。这两个术语非常相似,并且相互关联

2013-01-02 11:48:42 717

转载 shell 编程中空格的使用

1.定义变量时, =号的两边不可以留空格.eg:gender=femal————rightgender =femal———–wronggender= femal———–wrong2.条件测试语句 [ 符号的两边都要留空格.eg:if [ $gender = femal ]; then——-right.echo “you are femal”;fiif

2013-01-02 11:41:53 483

转载 shell 编程中各种括号的使用

1.()在子shell中运行(a=1);echo $a,结果是空,因为a=1不是在当前shell中运行的(a=1);(echo $a)也是空的。不在同一个子shell中数组的赋值,见最后的补充2.(())表达式计算a=1;((a++)); echo $a,这时a就是2了。3.()进程代入,可以把命令的执行结果当成文件一样读入比如comm前一般需要sort,那就可以这

2013-01-02 11:41:19 503

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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