/*
*本函数实现的功能是:当打开一个文件,若文件不存在时,创建它,并在文件中写入hello 2016
*
*/
#include <apue.h>
#define LINELEN 256
int main(int ac,char **av)
{
int fd = -1 , rdsize = 0;
char buf[LINELEN+1]; //定义缓存大小
if(1 >= ac){
printf("file name empty\n");
return 1;
}
fd = open("/root/Desktop/liu.sh",O_RDWR|O_CREAT|O_APPEND,0777); //第一个参数是文件路径,绝对路径名
if(0 > fd){
printf("open error [%d]\n",errno);
return 2;
}
memset(buf,0x00,LINELEN+1);
// buf[LINELEN] = '\0';
sprintf(buf,"Hello 2016\n");
rdsize = write(fd,buf,strlen(buf)); //给已经打开的文件描述符写
close(fd);
return 0;
}
#if 0
不带缓存的IO
* 常见的 open,read,write,lseek,close
* 定义: 都调用内核的中的系统调用,就是公共库函数
*文件描述符:
* 是一个大于0的整数,当打开已有文件或创建成功时,由内核给进程返回一个文件描述符,文件描述符作为参数
* 传给如:write ,read .close 等
*注意《惯例》:
* 文件描述符fd[0],fd[1],fd[2],已经成为惯例,分别为标准输入,标准输出,标准错误,也就是说,
* 一个进程可以打开多个文件,而这三个默认是打开的,以后打开的文件描述符,只能追加在它的后面
* 每个进程都有自己的文件描述符
*
*进程表项:存储 文件描述符 以及 FILE * FILE *是指向一个存储了文件信息的结构体
*文件表项:就是这个结构体,里面有文件状态标志(包括读 写 ,同步),文件偏移量,指向节点的表项指针
*节点表项:包含i-node ,当前文件长度,所有者,等节点信息都在磁盘上
*
*
*
#endif
*本函数实现的功能是:当打开一个文件,若文件不存在时,创建它,并在文件中写入hello 2016
*
*/
#include <apue.h>
#define LINELEN 256
int main(int ac,char **av)
{
int fd = -1 , rdsize = 0;
char buf[LINELEN+1]; //定义缓存大小
if(1 >= ac){
printf("file name empty\n");
return 1;
}
fd = open("/root/Desktop/liu.sh",O_RDWR|O_CREAT|O_APPEND,0777); //第一个参数是文件路径,绝对路径名
if(0 > fd){
printf("open error [%d]\n",errno);
return 2;
}
memset(buf,0x00,LINELEN+1);
// buf[LINELEN] = '\0';
sprintf(buf,"Hello 2016\n");
rdsize = write(fd,buf,strlen(buf)); //给已经打开的文件描述符写
close(fd);
return 0;
}
#if 0
不带缓存的IO
* 常见的 open,read,write,lseek,close
* 定义: 都调用内核的中的系统调用,就是公共库函数
*文件描述符:
* 是一个大于0的整数,当打开已有文件或创建成功时,由内核给进程返回一个文件描述符,文件描述符作为参数
* 传给如:write ,read .close 等
*注意《惯例》:
* 文件描述符fd[0],fd[1],fd[2],已经成为惯例,分别为标准输入,标准输出,标准错误,也就是说,
* 一个进程可以打开多个文件,而这三个默认是打开的,以后打开的文件描述符,只能追加在它的后面
* 每个进程都有自己的文件描述符
*
*进程表项:存储 文件描述符 以及 FILE * FILE *是指向一个存储了文件信息的结构体
*文件表项:就是这个结构体,里面有文件状态标志(包括读 写 ,同步),文件偏移量,指向节点的表项指针
*节点表项:包含i-node ,当前文件长度,所有者,等节点信息都在磁盘上
*
*
*
#endif