朝着心的方向前进
分类: LINUX
2010-03-31 10:53:58
应用编程回顾:
应用编程有以下几个部分,也是驱动中实现Operation函数的基础,所以必须得回,必须地呀!!!
1,文件I/O编程
2,进程控制
3,进程间通信
4,多线程
5,网络编程
文件I/O编程
了解以下的概念
系统调用,API,文件描述符
另外,编程接口中分为POSIX标准的IO操作(不带缓存)和标准IO,符合ANSI C (基于缓存)
需要熟练使用相应的接口函数.
同时为了解决资源共享和复用,引入文件锁相关的函数,另外Linux系统所有设备都是文件概念,操作硬件都是对应相应的读写操作及解决冲突的问题,串口操作是比较常见的.
POSIX 底层文件操作相关函数,不是ANSI C的组成部分
Open()
Close()
Write()
Lseek()
这些函数相应的语法很容易查到,但常用的格式要熟悉,会结合实例进行分析
文件锁
Fcntl()
Lock()
多路复用
Poll()
Select()
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
系统调用-访问判断
有时我们需要判断文件是否可以进行某种操作(读,写等),这时可以使用access函数:
int access(const char*pathname,int mode)
pathname:文件名称
mode:要判断的访问权限。可以取以下值或者是他们的组合。
R_OK:文件可读,W_OK:文件可写,
X_OK:文件可执行,F_OK文件存在。
返回值:当我们测试成功时,函数返回0,否则如果一个条件不符时,返回-1。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
C库函数
DOS,WIN,Vxworks,Linux均可以使用
Fopen(),fdopen(),freopen()
Fread()
Fclose()
Fwrite()
Fputc(),fputs()
Fgetc(),fgets()
Fscanf()
Fprintf()
Fseek()
getcwd()
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
说明路径获取
在编写程序的时候,有时候需要得到当前路径。C库函数提供了getcwd来解决这个问题。
char *getcwd(char *buffer,size_t size)
我们提供一个size大小的buffer,getcwd会把当前的路径名copy 到buffer中.如果buffer太小,函数会返回-1。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
常见打开模式:
v r, rb 只读方式打开
v w, wb 只写方式打开,如果文件不存在,则创建该文件
v a, ab 追加方式打开,如果文件不存在,则创建该文件
v r+, r+b, rb+ 读写方式打开
v w+, w+b, wh+ 读写方式打开,如果文件不存在,则创建该文件
v a+, a+b, ab+ 读和追加方式打开。如果文件不存在,则创建该文件
有点累,还有时间相关函数,只能等明天了.