
linux编程基础常识
努力123~
这个作者很懒,什么都没留下…
展开
-
struct用法深入探索
1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备丰富开发经历的标志。 在网络协议、通信转载 2013-03-09 11:39:12 · 718 阅读 · 0 评论 -
linux C gbk utf-8编码转换
用linux C 下的函数调用创建中文目录、文件等,字符串的编码格式要求是utf-8格式的。 比如想要使用 int mkdir(const char *pathname, mode_t mode); 创建一个中文的目录。那么pathname的编码格式要求是utf-8的,而不能是gb3212/gbk的,否则就是乱码。 那么如果linux C下如何进行gbkutf-8编转载 2014-12-11 15:32:46 · 2461 阅读 · 0 评论 -
进程控制之exit和waitpid(wait)函数
1. exit函数我们知道,进程有五种正常终止:1). 从main函数执行return语句,如同调用exit一样。2). 调用exit。此函数有ISO C定义,其操作包括调用各中终止处理程序,然后关闭所有标准I/O流等。因为ISO C并不处理文件描述符,多进程以及作业控制,所以这一定义对UNIX系统是不完整的。3). 调用_exit或_Exit。ISO C定义_Ex转载 2014-10-20 11:25:10 · 1564 阅读 · 0 评论 -
GCC编译C C++ 和C混合C++
Compiling C出自Ubuntu中文目录[隐藏]1 C 编程中相关文件后缀2 单个源文件生成可执行程序3 源文件生成对象文件4 多个源文件生成可执行程序5 编译预处理6 生成汇编代码7 创建静态库8 创建共享库9 超越命名惯例10 其他参考[编辑] C 编程中相关文件后缀转载 2014-10-14 13:42:41 · 3437 阅读 · 0 评论 -
Linux内核源码分析--内核启动之(2)Image内核启动(汇编部分)(Linux-3.0 ARMv7)
在完成了zImage自解压之后,就跳转到了解压后的内核(也就是vmlinux的bin版本Image),具体的入口可以在arch/arm/kernel/vmlinux.lds.S(最终的链接脚本是通过这个文件产生的)中获得:......SECTIONS{#ifdef CONFIG_XIP_KERNEL. = XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR);#e转载 2013-10-19 09:54:28 · 2045 阅读 · 0 评论 -
Linux内核源码分析--内核启动之(1)zImage自解压过程(Linux-3.0 ARMv7)
声明:原文地址:http://blog.chinaunix.net/uid-20543672-id-3018233.html感谢作者的分享!! 研究内核源码和内核运行原理的时候,很总要的一点是要了解内核的初始情况,也就是要了解内核启动过程。我在研究内核的内存管理的时候,想知道内核启动后的页表的放置,页表的初始化等信息,这促使我这次仔细地研究内核的启动代码。 CPU转载 2013-10-19 09:51:37 · 1522 阅读 · 0 评论 -
S3C2416移植内核linux2.6.35步骤和错误,文件系统挂载不上?
linux内核移植,启动文件系统时遇到的问题,分析到一半卡住了,大虾门帮忙看看!!原创 2013-08-06 09:52:46 · 3634 阅读 · 3 评论 -
好记性不如烂笔头之 ——vi命令
linux下vi命令大全进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename转载 2013-07-04 14:00:02 · 779 阅读 · 0 评论 -
C语言编程中我们会遇见一些指令,在这里列了一些出来
1.1.1 扩展关键字 1. asm 也可以写成 _asm。功能是在c程序中直接嵌入汇编语言。 asm(“string”); 其中string必须是有效的汇编语句。 2. __interrupt 放在函数前面,标志中断函数。下面这段程序是异步串行口UART0的接受中断函数。UART0RX_VECTOR为异步串行口UART0的接受中断向量。 举例: #pragma原创 2013-04-08 09:07:30 · 1846 阅读 · 0 评论 -
static和volatile的含义
volatilevolatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint; 当要求使用volatile 声明的变量的值的时候,系统总是重新从原创 2013-03-20 16:12:07 · 1288 阅读 · 0 评论 -
关于main(int argc,char *argv[])里面参数的说明
main(int argc,char *argv[ ]) argv为指针的指针 argc为整数 char **argv or: char *argv[] or: char argv[][] main()括号内是固定的写法。 下面给出一个例子来理解这两个参数的用法: 假设程序的名称为prog, 当只输入prog,则由操作系统传来的参数为: argc=1,表示只有一程序名称。原创 2013-03-11 09:11:24 · 699 阅读 · 0 评论 -
ARM Linux系统的时钟机制
1. Linux下有两类时钟:1.1 实时钟RTC它由板上电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。1.2 系统时钟“System clock”也叫内核时钟或者软件时钟,是由软件根据时间中断来进行计数的,内核时钟在系统关机的情况下是不存在的,所以,转载 2015-08-07 15:09:27 · 812 阅读 · 0 评论