
linux C
文章平均质量分 92
yel617
这个作者很懒,什么都没留下…
展开
-
关于volatile变量的理解
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automati转载 2010-03-08 11:27:00 · 787 阅读 · 0 评论 -
strtok(分割字符串)
<br /> <br />strtok(分割字符串)<br /> <br />表头文件 #include<string.h><br />定义函数 char * strtok(char *s,const char *delim);<br />函数说明 strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中 发现到参数delim的分割字符时则会将该字符改为/0 字符。在第一次调用时,strtok()必需原创 2011-02-14 11:54:00 · 1347 阅读 · 0 评论 -
access(判断是否具有存取文件的权限)
access(判断是否具有存取文件的权限)相关函数 stat,open,chmod,chown,setuid,setgid表头文件 #include定义函数 int access(const char * pathname,int mode);函数说明 acces原创 2011-08-08 11:34:43 · 8908 阅读 · 0 评论 -
Linux 时间函数
时间类型:Coordinated Universal Time(UTC):世界标准时间,也就是大家所熟悉的格林威治标准时间(Greenwich Mean Time, GMT)Calender Time:日历时间,是用一个标准时间点到此时经过的秒数来表示原创 2011-08-08 14:47:28 · 629 阅读 · 0 评论 -
C语言内存分配
一、一个经过编译的 C/ C++ 的程序占用的内存分成以下几个部分:1 、栈区( stack ):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成。其操作方式类似于数据结构中的栈。2 、堆区( h转载 2011-08-09 09:02:44 · 846 阅读 · 0 评论 -
指针数组
一个一维指针数组的定义:int *ptr_arry[10] 指针数组中的每一个元素均为指针,即有诸形如 “ *ptr_arry[i] ” 的指针。 由于数组名本身也是一个指针,因此指针数组中的元素亦可以表示为 “ *( *(ptr_ar原创 2011-09-15 10:10:58 · 481 阅读 · 0 评论 -
c语言 continue break
#include int main(){ int i; while(1) { printf("ok0\n"); for (i = 0; i < 5; i++) { printf("ok1\n");原创 2011-09-22 17:36:39 · 845 阅读 · 0 评论 -
c语言中 static 用法
static在c里面可以用来修饰变量,也可以用来修饰函数。一、修饰变量变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。int a ;int main(){ int b ; int c* = (int *)malloc(sizeof(int));}a是全局变量,b是栈变量,c是堆变量。stat转载 2011-11-17 09:21:58 · 649 阅读 · 0 评论 -
指针与二维数组
一.、二维数组元素的地址 定义如下二维数组: int a[3][4] = { {0,1,2,3}, {4,5,6,7}, {8,9,10,11} }; a为二维数组名,此数组有3行4列, 共12个元素。但也可这样来理解,数组a由三个元素组成:a[0], a[1], a[2]。而它们中每个元素又是一个一维数组, 且都含有4个元素原创 2011-11-01 10:37:28 · 4769 阅读 · 0 评论 -
strcpy strncpy (拷贝字符串)
<br /> <br />strcpy(拷贝字符串)<br />表头文件 #include<string.h><br />定义函数 char *strcpy(char *dest,const char *src);<br />函数说明 strcpy()会将参数src字符串拷贝至参数dest所指的地址。<br />返回值 返回参数dest的字符串起始地址。<br />附加说明 如果参数dest所指的内存空间不够大,可能会造成缓冲溢出(buffer Overflow)的错误情况,在编写程序时请特别留意,或原创 2011-02-15 11:45:00 · 1585 阅读 · 0 评论 -
getenv(取得环境变量内容)
<br />表头文件 #include<stdlib.h><br />定义函数 char * getenv(const char *name);<br />函数说明 getenv()用来取得参数name环境变量的内容。参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环<br /> 境变量的格式为name=value。<br />返回值 执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。<br />实例:<br />shell脚本 test.原创 2011-01-13 09:48:00 · 1891 阅读 · 0 评论 -
typedef struct 用法详解
1. 基本解释 typedef 为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型( struct 等)。 在编程中使用 typedef 目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至于 typedef 有什么微妙之处,请你接着看下面对几个问题的具体转载 2010-03-08 11:33:00 · 550 阅读 · 0 评论 -
C语言中extern的用法
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。1. extern修饰变量的声明。举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。这里需要注意的是,被引用的变量v的链接属性必须是外链接(external)的,也就是说a.c要引用到v,不只是取决于在a.c中声明e转载 2010-04-29 15:18:00 · 592 阅读 · 0 评论 -
C 语言 implicit declaration of function 错误原因
<br />关于 implicit declaration of function 一点经验之谈<br /><br />用gcc编译c程序的时候 经常会出现<br />implicit declaration of function '...' 的warning<br /><br />偶经过这几天的经验,发现主要有2种情况会产生这种warning<br /><br />1 没有把函数所在的c文件生成.o目标文件<br />2 在函数所在的c文件中定义了,但是没有在与之相关联的.h转载 2010-07-22 14:23:00 · 60283 阅读 · 0 评论 -
条件运算符?:
<br /> expression1 ? expression2 : expression3<br /> <br /> 如果expression1为真(非零),整个条件表达式的值和expression2的值相同。如果expression1为假(零),整个条件表达式的值等于expression3的值。<br /> <br /> x = (y < 0) ? -y : y<br /> <br /> 如果y小于0,那么x=-y;否则,x=y。原创 2010-08-09 11:12:00 · 128 阅读 · 0 评论 -
字符串输入函数gets( ) fgets( ) scanf( )
<br />C库提供了三个读取字符串的函数:gets( ) fgets( ) scanf( )。<br />gets()---get string 从系统的标准输入设备(通常是键盘)获得一个字符串。因为字符串没有预定的长度,所以gets()需要知道输入何时结束。解决办法是在读字符串直到遇到一个换行符(/n),按回车键可以产生这个字符。它读取换行符之前(不包括换行符)的所有字符,在这些字符后加一个空字符(/0)。它会丢弃换行符。<br />定义函数 char *gets(char *s)<br />返原创 2010-08-16 15:22:00 · 5275 阅读 · 0 评论 -
字符串输出函数 puts( ) fputs( ) printf( )
<br />C语言有三个勇于输出字符串的标准库函数 puts( ) fputs( ) printf( )<br />puts( )函数的使用很简单,只需要给出字符串参数的地址。注意,每一个字符串都单行显示,与printf()不同,puts()显示字符串时自动在其后添加一个换行符。<br /> /* put_out.c -- using puts() */#include <stdio.h>#define DEF "I am a #defined string."int main(void){原创 2010-08-16 15:34:00 · 2508 阅读 · 0 评论 -
getchar( )与putchar( )
<br />getchar()---由标准输入设备内读进一字符<br />表头文件 #include <stdio.h><br />定义函数 int getchar (void)<br />函数说明 getchar()用来从标准输入设备中读取一个字符。然后将该字符从unsigned char转换成int后返回<br />返回值 getchar()会返回读取到的字符,若返回EOF则表示有错误发生<br />附加说明 getchar()非真正函数,而是gets(stdin)宏定义。<br /原创 2010-08-16 15:50:00 · 1015 阅读 · 0 评论 -
字符串
字符串( character string )是以空字符(/0)结尾的char数组。字符串常量(string constant),是指位于一对双引号中的任何字符。双引号里德字符加上编译器自动提供的结束标志/0字符,作为一个字符串被存储在内存里。// strings.c -- stringing the user along#include #define MSG "You must have many talents. Tell me some."原创 2010-08-16 14:41:00 · 587 阅读 · 0 评论 -
assert()函数用法总结
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badpt转载 2012-06-30 09:23:04 · 667 阅读 · 0 评论