AUP学习笔记--基本的I/O系统调用

2023-10-18 21:58

本文主要是介绍AUP学习笔记--基本的I/O系统调用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  最近在读高级unix编程一书,没事就写写总结吧,把一些重点内容记录下来,以后要复习或者找资料的话还可以省点时间,闲话不多说,unix下系统编程我想跟Linux下的应该没什么区别,一般说来我会直接在linux下进行实验,说到这里,前些天把自己的本整成了双系统,分了六十G给fedora16,使用GNOME3感觉很清爽,界面也很炫,一些工作上用到的toolchain也配置好了,还以为有多么复杂,没想到只需要改个路径就可以~!这章的内容应该是在十天前看的,主要内容也就是几个系统调用函数的使用,包括open/creat/close/read/write/lseek/umask/unlink,这些应该是用的比较多的了,其他的比如pread/pwrite/readv/writev这几个好像见得不多,没有太细看,大概知道是干嘛的,下面具体说说这几个函数的用法:

1.open

#include <sys/stat.h>
#include <fcntl.h>/* Return fd or -1 on error,set errno */
int open(const char *path, /* file path name */  int flags, /* open flags */mode_t perms /* permissions(when creating) */);
可以用open来打开一个已经存在的文件(普通文件、特殊文件或命名管道)或者创建一个新的文件,但只能创建普通文件。文件一旦打开的话,open以及相关的read、write、lseek、close调用就可以使用返回的文件描述符。

flags的取值:

O_RDONLY  以只读方式打开文件,O_WRONLY 以只写方式打开文件,O_RDWR 以可读写方式打开文件

对于一个已经存在的文件,参数perms是没有用的,通常省略,文件偏移量(读写用到的)位于文件的第一个字节,比如打开一个存在的文件:

int fd;
fd = open("/home/rudyn/tmpfile", O_RDONLY);

用open创建一个新的文件,需要在flags中加入标志O_CREATE,当然还要结合O_WRONLY或者O_RDWR一起用,不然的话创建的文件就是个只读的,意义不大,这个时候perms参数就要用得上了:

fd = open("/home/rudyn/tmpfile", O_RDWR | O_CREATE, PERM_FILE);

这篇关于AUP学习笔记--基本的I/O系统调用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/235389

相关文章

基于C++的UDP网络通信系统设计与实现详解

《基于C++的UDP网络通信系统设计与实现详解》在网络编程领域,UDP作为一种无连接的传输层协议,以其高效、低延迟的特性在实时性要求高的应用场景中占据重要地位,下面我们就来看看如何从零开始构建一个完整... 目录前言一、UDP服务器UdpServer.hpp1.1 基本框架设计1.2 初始化函数Init详解

Django调用外部Python程序的完整项目实战

《Django调用外部Python程序的完整项目实战》Django是一个强大的PythonWeb框架,它的设计理念简洁优雅,:本文主要介绍Django调用外部Python程序的完整项目实战,文中通... 目录一、为什么 Django 需要调用外部 python 程序二、三种常见的调用方式方式 1:直接 im

Java调用DeepSeek API的8个高频坑与解决方法

《Java调用DeepSeekAPI的8个高频坑与解决方法》现在大模型开发特别火,DeepSeek因为中文理解好、反应快、还便宜,不少Java开发者都用它,本文整理了最常踩的8个坑,希望对... 目录引言一、坑 1:Token 过期未处理,鉴权异常引发服务中断问题本质典型错误代码解决方案:实现 Token

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

MySQL基本表查询操作汇总之单表查询+多表操作大全

《MySQL基本表查询操作汇总之单表查询+多表操作大全》本文全面介绍了MySQL单表查询与多表操作的关键技术,包括基本语法、高级查询、表别名使用、多表连接及子查询等,并提供了丰富的实例,感兴趣的朋友跟... 目录一、单表查询整合(一)通用模版展示(二)举例说明(三)注意事项(四)Mapper简单举例简单查询

在C#中调用Windows防火墙界面的常见方式

《在C#中调用Windows防火墙界面的常见方式》在C#中调用Windows防火墙界面(基础设置或高级安全设置),可以使用进程启动(Process.Start)或Win32API来实现,所以本文给大家... 目录引言1. 直接启动防火墙界面(1) 打开基本防火墙设置(firewall.cpl)(2) 打开高

python调用dubbo接口的实现步骤

《python调用dubbo接口的实现步骤》本文主要介绍了python调用dubbo接口的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录 ​​其他实现方式与注意事项​​ ​​高级技巧与集成​​用 python 提供 Dubbo 接口

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

C# FTP调用的实现示例

《C#FTP调用的实现示例》本文介绍了.NET平台实现FTP/SFTP操作的多种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 .NET 自带 FtpWebRequest 实现 FTP 操作1.1 文件上传1.2

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash