嵌入式linux c 编程
文章平均质量分 78
SunRise_2016
专业杂工一枚,混迹于IT、产品周边,继续苦逼的做着残品的梦
展开
-
客户端和服务器端互相收发消息
服务器端源代码如下:#include #include #include #include #include #include #include #include #include #include #define MAXBUF 1024/************关于本文档*****************************转载 2012-07-11 15:33:10 · 4388 阅读 · 0 评论 -
Linux编程C++内存管理的指针传递详解
指针参数是如何传递内存的?如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么?void GetMemory(char *p, int num){ p = (char *)malloc(sizeof(char) * num);转载 2013-03-14 12:18:31 · 1011 阅读 · 0 评论 -
linux进程间通信
进程是一个独立的资源分配单元,不同进程之间进程是独立的。Linux操作系统支持的进程间通信机制:(1)、同主机进程间数据交互机制:无名管着(PIPE)、有名管道(FIFO)、消息队列(Message Queue)和共享内存(Share Memory)。(2)、同主机进程间同步机制:信号量(semaphore)(3)、同主机进程间异步机制:信号(Signal)(4)、网络主机原创 2012-10-14 20:38:04 · 1441 阅读 · 0 评论 -
linux进程管理
1、 进程基本属性1)、进程号(PID)_pid_t getpid(void) 获得当前进程的进程号(PID)2)、父进程号(PPID)_pid_t getppid(void) 获得当前进程的父进程号(PPID)3)、进程组号(PGID)_pid_t getpgid(_pid_t _pid) 获得指定进程的进程组号,如果为0表示获取当前进程组号(PGID),否原创 2012-10-11 15:52:44 · 825 阅读 · 0 评论 -
POSIX文件及目录管理
在linux操作系统中,实现了两类对文件IO的管理,一类是遵循POSIX标准,linux操作系统自身提供的IO系统调用,如open、close、read等函数;另一类是由ANSI标准提供的标准IO库函数,这些函数是对直接IO系统调用的封装,其在访问文件时根据需要设置了不同类型的缓冲区,从而减少了直接IO系统调用的次数,提高访问效率。 1、 文件流与文件描述符的区别:使用ANSI C原创 2012-10-11 15:51:04 · 10567 阅读 · 0 评论 -
linux文件管理模式及目录管理操作
一、linux文件系统管理1、 linux下VFS虚拟文件系统linux采用VFS来管理文件系统,通过VFS,可以为访问文件系统的系统调用提供统一的抽象接口。Linux系统内核采用inode结构体来保存与文件相关的信息,数据结构struct inode 比如访问权限,文件大小、创建时间等,这些信息被称为文件的元数据。2、 linux文件类型及权限文件属性存储结构体i原创 2012-10-11 15:52:01 · 1444 阅读 · 0 评论 -
ANSIC C 文件管理
一、根据数据的存储方式,文件可为分二进制文件和文本文件:1、文本文件:ASCLL文件,每个字节存放一个ASCLL码字符,其存储量大,速度慢,便于对字符操作;2、二进制文件:数据按其在内存中存储形式原样存放,其存储容量小,速度快,便于存放中间结果; 二、根据应用程序对文件的访问方式,即是否存在缓冲区。1、缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区;如ANS原创 2012-09-18 23:15:59 · 2184 阅读 · 0 评论 -
linux时间管理函数
在LInux系统下,对时间管理要弄清楚UTC时间和Local Time时间的区别1)、UTC:即GMT(Greenwich Mean Time)2)、Local Time 为本地时间系统默认的时区配置文件位置为/etc/sysconfig/clock在编程应用时,经常需要读取时间、进程运行的时间等信息,在time.h头文件中声明了这些函数 clock()函数用于查看进程运行原创 2012-09-18 11:16:16 · 1242 阅读 · 0 评论 -
linux进程存储管理--进程内存结构
一个正在运行着的进程在内存空间中的内存结构有:代码区、初始化数据区、未初始化数据区、堆区和栈区5个部分1)代码区(text segment)。加载的是可执行文件代码段2)全局初始化数据区/静态数据区(Data Segment)。加载的是可执行文件数据段,存储于数据段的数据的生存周期为整个程序运行过程3)未初始化数据区(BSS)4)堆区(heap)用于动态内存分配一般由程序员分配原创 2012-09-18 10:08:17 · 3136 阅读 · 0 评论 -
do…while(0)的妙用
在C++中,有三种类型的循环语句:for, while, 和do…while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do…while相对不受重视。但是,最近在读我们项目的代码时,却发现了do…while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do…while(0)消除goto语句通常,如果在一个函数中开始要分配一些资源,然后转载 2012-09-15 15:35:33 · 845 阅读 · 0 评论 -
linux—select详解
linux—select详解 select系统调用时用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,通过socket函数的声明就明白了:int socket(int domain, int type, int protocol);我们最熟悉的句柄是0、1、2三个,0是标转载 2012-07-11 17:14:38 · 788 阅读 · 0 评论 -
TCP、UDP编程介绍
通常我们在说到网络编程时默认是指TCP编程,即用前面提到的socket函数创建一个socket用于TCP通讯,函数参数我们通常填为SOCK_STREAM。即socket(PF_INET, SOCK_STREAM, 0),这表示建立一个socket用于流式网络通讯。通过查看socket的man手册可以看到socket函数的第一个参数的值可以为下面这些值:Name转载 2012-07-11 15:32:03 · 819 阅读 · 0 评论 -
UDP方式点对点通讯
UDP通讯服务器端源代码如下:#include #include #include #include #include #include #include #include /**********************************************************************filename: si转载 2012-07-11 15:34:19 · 4200 阅读 · 0 评论 -
Linux编程C++内存管理之内存分配详解
更多linux内存管理方面的知识,请看专题:揭秘linux内存管理http://www.ccidnet.com/images/tech/linux/zhuanti/neicun/index.htm程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存转载 2013-03-14 12:16:58 · 1041 阅读 · 0 评论