第三章 文件操作

底层文件访问

文件描述符:

0:标准输入

1:标准输出

2:标准错误

write系统调用

把缓冲区buf的前nbytes个字节写入与文件描述符fildes关联的文件中。返回实际写入的字节数。返回0表示未写入,返回-1表示错误。

#include <unistd.h>

size_t write(int fildes,const void *buf,size_t nbytes)

#include<unistd.h>
#include<stdlib.h>

int main(){
    if((write(1,"Here is some data\n",18))!=18)
      write(2,"A write error has occured on file desciptor 1 \n",46);
    exit(0);
}

输出:

[email protected]:~/linux_program/CH03$ ./write
Here is some data

read系统调用

从与文件描述符fileds相关联的文件里读入nbytes个字节的数据,并放在buffer中,返回实际读入的字节数。返回0表示未读入,-1表示错误。

#include <unistd.h>

size_t read(int fildes, void *buf,size_t nbytes)

#include<unistd.h>
#include<stdlib.h>

int main(){
    char buffer[128];
    int nread;
    nread = read(0,buffer,128);

    if(nread == -1)
      write(2,"A read error has occurred\n",26);

    if((write(1,buffer,nread)) != nread)
      write(2,"A write error has occurred\n",27);

    exit(0);
}

输出:

[email protected]:~/linux_program/CH03$ echo hello world | ./read
hello world

open系统的调用

为了创建一个新的文件描述符,需要使用open

#inlcude <fcntl.h>

int open(const char *path,int oflags);

int open(const char *path,int oflags,mode_t mode);

时间: 2024-10-12 16:25:51

第三章 文件操作的相关文章

APUE学习笔记:第三章 文件I/O

3.1 引言 术语不带缓冲指的是每个read和write都调用内核中的一个系统调用.这些不带缓冲的I/O函数不是ISO C的组成部分,但是,它们是POSIX.1和Single UNIX Specification的组成部分 3.2 文件描述符 UNIX系统shell使用文件描述符0与进程的标准输入相关联.文件描述符1与标准输出相关联.文件描述符2与标准出错输出相关联. 在依从POSIX的应用程序中,幻数0.1.2应当替换成符号常量STDIN_FILENO,STDOUT_FILENO和STDERR

分分钟钟学会Python - 第四章 文件操作

第四章 文件操作 4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') obj.write() # 写入 obj.read() # 读取 obj.close() #关闭 4.2 打开模式 r / w / a [只读只写字符串] * r+ / w+ / a+ [可读可写字符串] rb / wb / ab [只读只写二进制] * r+b / w+b / a+b [可读可写二进制] 4.3 操作 read() , 全部读到内存 read(1) 1表示一

python第四章文件操作

第四章 文件操作 4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') # 打开文件 obj.write() # 把内容写入文件 obj.read() # 读取文件内容 obj.close() # 关闭文件(保存文件,把内存上的数据写入到文件上-->硬盘上,01010101存储的) # 3步:1.打开文件. 2. 操作文件 3. 关闭文件 4.2打开文件 4.2.1语句 file = open('文件路径',mode = 'r',encoding

第四章文件操作

第四章 文件操作 4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') obj.write() obj.read() obj.close() with open... 4.2 打开模式 r / w / a r+ / w+ / a+ rb / wb / ab r+b / w+b / a+b 4.3 操作 read() , 全部读到内存 read(1) 1表示一个字符 obj = open('a.txt',mode='r',encoding='utf

Python 第三天 文件操作

文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open. open会自己在Python中找. 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读,也

python入门三:文件操作

一.文件操作 1.文件对象:和c一样,要想对一个文件进行操作,需要获取该文件的对象 1 f = open("xxx") # 打开文件并获取文件对象 2 f.xxx # 对文件进行某些操作 3 f.close() # 关闭文件 2.访问模式: open函数除了接受一个文件名参数外,还可以设定文件的访问模式(open其他的参数不太能理解) 无   以只读方式打开,文件必须存在 r     以只读方式打开,文件必须存在 w    以只写方式打开, 先删除原有内容再写入新内容,文件不存在创建新

Head First Python 第二章 函数模块&amp;第三章 文件与异常&amp;第四章 持久存储&amp;第五章 处理数据

第三章 1.共享模块 模块和发布工具箱全世界共享模块 编写函数,以.py为文件后缀名,第三方库都在PyPI *注释代码:三引号(单双都可以) 发布过程P40 使用发布工具,函数模块变成了一个“发布”,可以使用import导入其他程序 2.如果函数模块功能不满意 添加参数以供api选择比添加函数工作量小! 首先考虑BIF内置函数 ----------------------------------------------------------- 第四章 1.文件 open()语句,readlin

Python学习记录——Ubuntu(三)文件操作

一.mkdir用于创建目录: mkdir 目录名  #创建目录 mkdir -p 目录名1/目录名2/目录名3  #创建多层目录 二.rm用于删除文件(慎用,易引发程序崩溃): 1.参数 (1)rm 文件名   #只能删除文件,但是不能删除目录 (2)rm -i 文件名  #会出现提示 (3)rm -f 文件名  #强制删除 (4)rm -rf 目录名  #强制删除目录 三.mv用于移动或重命名文件/目录: 1.示例 (1)mv 文件/目录名 新文件/目录名  #重命名文件/目录 (2)mv  

python3.0 第三天 文件操作

文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 Somehow, it seems the love I knew was always the most destructive kind 不知为何,我经历的爱情总是最具毁灭性的的那种 Yesterday when I was young 昨日当我年少轻狂 The taste of life was sweet 生命的滋味是甜的 As rain upon my tongue 就如舌