
c
文章平均质量分 68
retacn
这个作者很懒,什么都没留下…
展开
-
c语言学习笔记十七
虚拟内存管理查看进程: ps显示结果: PID TTY TIME CMD 1979 pts/0 00:00:00 bash 2048 pts/0 00:00:00 ps查看bash的虚拟地址空间: cat /proc/1979/maps 或是pmap 1979 显示结果:08048000-08123000 r...2012-09-29 13:09:00 · 100 阅读 · 0 评论 -
c语言学习笔记四
结构体复合类型和结构体 复合类型: 示例代码: struct test_sturuct{int x,y; } 如果用这种复合类型来定义变量: 示例代码: struct test_sturuct{ int x,y; }z1,z2; 定义访问结构体: #include<stdio.h> int main(voi...2012-09-16 13:59:00 · 132 阅读 · 0 评论 -
c语言学习笔记三
return 语句 如果没有返回结果,结束当前函数的执行,返回到调用它的地方增量式开发分局设计(stratify)递归 计算阶乘 0!=1 n!=n*(n-1)! 示例代码: int factorial(int n){ if(n==0){ return 1; }else{int recurse=factorial(n-1); ...2012-09-16 13:01:00 · 96 阅读 · 0 评论 -
c语言学习笔记二
函数注: linux下运行.c执行以下命令: gcc fileName.c -lm(由于数学函数位于libm.so中) ./a.outc标准库和glibc c标准库 描述c的语法 描述c标准库 glibc 是linux平台上最广泛的c函数库(包括标准库和所有系统库) 数学函数 示例代码: #include<math.h> #i...2012-09-16 12:13:00 · 119 阅读 · 0 评论 -
c语言学习笔记一
数据类型 基本类型 : 整型 整数 -2(15)~2(15)-1 -32768~32767 八进制:0开头 十六进制:0x开头十进制: 占用2个字节,16个二进制位 浮点型(单精度/双精度) 浮点小数(双精度) 1.23 2.1E2 2.1(12) 字符型单个字符: 'a'...2012-09-16 01:45:00 · 77 阅读 · 0 评论 -
linux 系统编程学习笔记四
文件系统ext2文件系统分区的格式化工具mkfs文件系统的总体存储布局boot block(1kb)block group 0 super block (超级块):描述整个分区的文件系统信息 GDT(块组描述表group descriptor table):由块组描述符组成 block bitmap(块位图)原创 2012-12-13 21:41:07 · 521 阅读 · 0 评论 -
linux 系统编程学习笔记三
mmap可以把磁盘文件的一部分直接映射到内存,这样文件中的位置直接就有对应的内存地址对文件的读写可以直接用指针来作,不需要read/write函数#include /*如果addr参数为NULL,内核会在进程地址空间中选择合适的地址建立映射 如果不为空,则指定从什么地址开始映射 len 指定文件的映射长度 off 是指从文件的什么位置开始映射,是页大小的整原创 2012-12-10 20:54:35 · 355 阅读 · 0 评论 -
linux 系统编程学习笔记二
lseek文件在打开时读写位置是0,如果是以O_APPEND方式打开,位置会移致动到文件末尾#include #include /*移动当前读写位置 参数同fseek offset 偏移量 whence 起始位置 */off_t lseek(int fd,off_t offset,int whence);打开文件的当前偏移量off_t cu原创 2012-12-06 22:15:33 · 407 阅读 · 0 评论 -
linux 系统编程学习笔记一
文件与i/o汇编程序的hello world.data #sectiondeclarationmsg:.ascii "hello world!\n" #our dearstringlen= . - msg #length of ourdear string.text #sectiondeclaration #we must e原创 2012-12-05 21:29:51 · 494 阅读 · 0 评论 -
c语言学习笔记二十六
2 标准I/O库函数 文件的基本概念 文本文件(源文件) 二进制文件(目标文件,可执行文件,库文件) 查看二进制文件: hexdump 示例代码如下: 编辑文件:viyuezhenhua@ubuntu:/opt/sdk/tc$ vi textfile 1234 查看文件长度:ls -l 文件名原创 2012-12-03 21:42:26 · 767 阅读 · 0 评论 -
c语言学习笔记二十五
c标准库1 字符串操作函数 初始化字符串#include /*s指向哪,返回的指针就指向哪*//*把s所指的内存地址开始的n个字节,都填充为c的值,c为0*/void *memset(void *s, int c,size_t n); 取字符串的长度#include /*返回s所指字符串的长度*/size_t strlen(const char *s原创 2012-12-03 20:22:48 · 345 阅读 · 0 评论 -
c语言学习笔记五
gdb调试工具 sudo su 切换到root用户 mkdir 新建程序文件目录tc cat >test.c //新建文件 直接编写程序 示例代码如下: #include <stdio.h>int add_range(int low,int high){ int i,sum; for(i=low;i<=high;i++){sum=sum+i; }...2012-09-16 16:13:00 · 85 阅读 · 0 评论 -
c语方学习笔记六
排序sb东西算法(alorithm) 解决一类计算问题插入排序示例代码:#include <stdio.h>#define LEN 5 int a[LEN]={10,5,2,4,7}; void insertion_sort(void){int i,j,key; for(i=1;i<LEN;i++){ printf("element:%d,%d,%...2012-09-16 22:18:00 · 88 阅读 · 0 评论 -
c语言学习笔记十六
共享库命名规范:通常带有符号链接 ls -l /lib... libipq_pic.so.0 libulockmgr.so.1libipq_pic.so.0.0.0 libulockmgr.so.1.0.1libipq.so.0 libusb-0.1.so.4libipq.so.0.0.0 ...2012-09-26 15:46:00 · 193 阅读 · 0 评论 -
c语言学习笔记十五
静态库在一定场景下将一些代码编译成一个库文件,以供其他程序使用示例代码如下: 20-23文件放在子目录stack中 test20.c文件: char stack[512]; int top=-1; test21.c文件: extern char stack[512]; extern int top; void push(char c){ stack...2012-09-21 23:58:00 · 78 阅读 · 0 评论 -
c语言学习笔记十四
多目标文件的链接示例代码如下:test18.cchar stack[512];int top=-1;void push(char c){stack[++top]=c;}char pop(){return stack[top--];}int is_empty(void){return top==-1;}test19.c#include <...2012-09-20 23:30:00 · 130 阅读 · 0 评论 -
c语言学习笔记十三
结构体 示例代码#include<stdio.h>int main(void){struct{ charo a; short b; int c; char d; }s;s.a=1;s.b=2; s.c=3; s.d=4;printf("%u\n",sizeof(s));return 0;} 编译:gcc ...2012-09-20 22:26:00 · 99 阅读 · 0 评论 -
c 语言学习笔记十二
ELF 文件三种格式:1 可重定位的目标文件 可用readelf工具读取 readelf -a 文件名ELF headerprogram header tablesection header table目标文件的布局 起始文件地址 Section或Header 0 ELF Header 0x34 .text 0x6...2012-09-18 13:53:00 · 106 阅读 · 0 评论 -
c语言学习笔记十一
文件I/O.data msg : .string "Hello, world!\n" len = . - msg.text.global _start_start: movl $len, %edx movl $msg, %ecx movl $1 , %ebx movl $4 , %eax int $0x80 ...2012-09-17 15:36:00 · 74 阅读 · 0 评论 -
c语言学习笔记十
内存与地址32位x86 ,从0x0000 0000到0xffff ffffcpu的功能单元:寄存器:register,高速存储器,像内存一样存取数据 eax 通用寄存器 ebx ecx edx edi ebp eip 程序计数程序计数器:program counter,指令解码器:instruction de...2012-09-17 13:51:00 · 143 阅读 · 0 评论 -
c语言学习笔记九
运算符逻辑运算 XOR 的真值表 A B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0 NAND 的真值表 A B A NAND B 0 0 1 0 1 1 1 0 1 1 1 0NOR 的真值表 A B A NOR B 0 0 1 0 1 0 1 0...2012-09-17 12:40:00 · 71 阅读 · 0 评论 -
c语言学习笔记八
数据结构的概念学这东西感觉一下又回到了十年前数据结构(data structure):数据的组织方式 算法+数据结构=程序堆栈(后进先出): 示例代码: #include<stdio.h>char stack[512];int top=0;void push(char c){stack[top++]=c;}char pull(){retu...2012-09-16 23:48:00 · 114 阅读 · 0 评论 -
c 语方学习笔记七
线性查找 示例代码:#include<stdio.h>char a[]="hello world";int indexof(char letter){int i=0;while(a[i]!='\0'){ if(a[i]==letter){ return i; }i++; }}int main(void){print...2012-09-16 22:39:00 · 82 阅读 · 0 评论 -
c语言学习笔记二十四
函数接口 示例代码如下:man page http://www.linuxmanpages.com/NAME#把一个字符串考贝到另一个字符串strcpy, strncpy - copy a string SYNOPSIS#函数原型#include #dest 目标字串#src 源字串char *原创 2012-11-19 20:57:54 · 456 阅读 · 0 评论 -
c语言学习笔记二十三
指针 占4个字节的存储空间概念把一个变量所在的内存单元保存在另一个内存单元中,保存单元的这个地址就是指针示例代码:int i;int *pi=&i;指针的重新赋值pi=&j;改变指针所指向的整型变量的值*pi =*pi+10;指针初始化另一个指针(两指针必须为同一类型)int *ptri;ptri =pi;可以进行强制类型原创 2012-11-11 16:56:27 · 691 阅读 · 0 评论 -
c语言学习笔记八
数据结构的概念 学这东西感觉一下又回到了十年前数据结构(data structure):数据的组织方式 算法+数据结构=程序堆栈(后进先出): 示例代码: #include char stack[512]; int top=0;void push(char c){stack[top++]=c;}char pull(){return原创 2012-09-16 23:48:58 · 1240 阅读 · 0 评论 -
c语言学习笔记九
运算符逻辑运算 XOR 的真值表 A B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0 NAND 的真值表 A B A NAND B 0 0 1 0 1 1原创 2012-09-17 12:40:47 · 834 阅读 · 0 评论 -
c语言学习笔记五
gdb调试工具 sudo su 切换到root用户 mkdir 新建程序文件目录tc cat >test.c //新建文件 直接编写程序 示例代码如下: #include int add_range(int low,int high){ int i,sum; for(i=low;isum=sum+i; }原创 2012-09-16 16:13:43 · 653 阅读 · 0 评论 -
c语言学习笔记二
函数 注: linux下运行.c执行以下命令: gcc fileName.c -lm(由于数学函数位于libm.so中) ./a.out c标准库和glibc c标准库 描述c的语法 描述c标准库 glibc 是linux平台上最广泛的c函数库(包括标准库和所有系统库) 数学函数 示例代原创 2012-09-16 12:13:17 · 576 阅读 · 0 评论 -
c语言学习笔记四
结构体 复合类型和结构体 复合类型: 示例代码: struct test_sturuct{int x,y; } 如果用这种复合类型来定义变量: 示例代码: struct test_sturuct{ int x,y; }z1,z2; 定义访问结构体原创 2012-09-16 13:59:16 · 847 阅读 · 0 评论 -
c语言学习笔记一
数据类型 基本类型 : 整型 整数 -2(15)~2(15)-1 -32768~32767 八进制:0开头 十六进制:0x开头 十进制: 占用2个字节,16个二进制位 浮点型(单精度/双精原创 2012-09-16 01:45:49 · 514 阅读 · 0 评论 -
c 语方学习笔记七
线性查找 示例代码:#includechar a[]="hello world";int indexof(char letter){int i=0;while(a[i]!='\0'){ if(a[i]==letter){ return i; }i++; }原创 2012-09-16 22:39:52 · 1027 阅读 · 0 评论 -
c语方学习笔记六
排序 sb东西算法(alorithm) 解决一类计算问题插入排序 示例代码:#include #define LEN 5 int a[LEN]={10,5,2,4,7}; void insertion_sort(void){int i,j,key; for(i=1;i printf("element:%d,%d,%d,%d,%d\原创 2012-09-16 22:18:20 · 1588 阅读 · 0 评论 -
c语言学习笔记三
return 语句 如果没有返回结果,结束当前函数的执行,返回到调用它的地方 增量式开发 分局设计(stratify) 递归 计算阶乘 0!=1 n!=n*(n-1)! 示例代码: int factorial(int n){ if(n==0){ return 1; }else{ i原创 2012-09-16 13:01:55 · 809 阅读 · 0 评论 -
c语言学习笔记十七
虚拟内存管理 查看进程: ps 显示结果: PID TTY TIME CMD 1979 pts/0 00:00:00 bash 2048 pts/0 00:00:00 ps查看bash的虚拟地址空间: cat /proc/1979/maps原创 2012-09-29 13:09:03 · 806 阅读 · 0 评论 -
c语言学习笔记十
内存与地址 32位x86 ,从0x0000 0000到0xffff ffffcpu的功能单元: 寄存器:register,高速存储器,像内存一样存取数据 eax 通用寄存器 ebx ecx edx edi ebp eip 程序计数原创 2012-09-17 13:51:56 · 648 阅读 · 0 评论 -
c语言学习笔记十一
文件I/O.data msg : .string "Hello, world!\n" len = . - msg.text.global _start_start: movl $len, %edx movl $msg, %ecx movl $1 , %ebx原创 2012-09-17 15:36:33 · 843 阅读 · 0 评论 -
c语言学习笔记二十二
自动处理头文件的依赖关系all:test34test34:test34.o test33.o test31.o gcc$~ -o $@ test34.o:test34.c test29.h test30.h test32.h test33.o:test33.c test32.h test29.h test31.o:test31.c原创 2012-11-09 00:17:02 · 610 阅读 · 0 评论 -
c语言学习笔记二十一
makefile中关于变量的语法规则示例代码如下:foo = $(bar)bar = Huh?all:@echo $(foo)执行make后输出: Huh?优点: 可以把变量的值推迟到后面定义示例代码:main.o:main.c$(CC) $(CFAGS) $(CPPFLAGS) -C $CC=gc原创 2012-10-25 22:53:49 · 439 阅读 · 0 评论 -
c语言学习笔记二十
makefile基础基本规则一般的程序都是由多个源文件编译链接而成,而这些源文件的处理通常是由makefile来处理示例代码如下:/*test29.h*/#ifndef MAIN_H#define MAIN_H/*声明点类型*/typedef struct point {int row,col} item_t;/*声明原创 2012-10-21 23:47:44 · 509 阅读 · 0 评论