热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux系统编程(9)——基础IO(1)

打开文件上限:ulimit 可以查看文件打开数目,同时ulimit-n <数字> 可以修改文件

打开文件上限:ulimit&#160; 可以查看文件打开数目,同时 ulimit -n&#160; <数字>&#160; 可以修改文件打开数目。也就是说文件打开数目是有上限的,但是可以根据自己的使用情况来调整。


fread/fwrite/fopen/fclose&#160; 库函数

read/write/open/close&#160; 系统调用函数(Linux提供的比较底层的文件操作)



open

头文件:

#include

#include

#include

函数:

int open(const char *pathname, int flags); &#160;&#160;

int open(const char *pathname, int flags, mode_t mode);

参数列表:

pathname:路径,要打开或创建的目标文文件

flags:打开方式

flags分为:&#160;

O_RDONLY: 只读打开 &#160; &#160; &#160; &#160;

O_WRONLY: 只写打开 &#160; &#160; &#160; &#160;

O_RDWR &#160;: 读,写打开 &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;

注:这三个常量,必须指定一个且只能指定一个 &#160; &#160; &#160; &#160;

O_CREAT : 若文件不存在,则创建它。需要使用mode选项,来指明新文件的访问权限 &#160; &#160; &#160; &#160;

O_APPEND: 追加写

返回值: &#160; &#160; &#160; &#160;

成功:新打开的文件描述符fd &#160; &#160; &#160; &#160;

失败:-1

#include
#include
#include
int main(){
//open的返回值:文件描述符
//FILE*中包含了文件描述符
int fd = open("./test.txt", O_RDONLY) //只读打开
printf("%d\n", fd);
return 0;
int fd = open("./test.txt", 0_RDONLY | O_CREAT)
//只读打开,文件存在就打开,文件不存在就自己创建
}

输出结果是:3


文件描述符表:

Linux系统编程(9)——基础IO(1) - 文章图片

问:为什么是3?0,1,2去哪了?

答:0,1,2是标准输入,标准输出,标准错误,后序打开就接着打开。




read——文件描述符上执行读操作

函数:

ssize_t read(int fd, void *buf,size_t count)

size_t:表示有符号的长整形,不可为负数

ssize_t:表示可以为负数

char buf[1024]={0};
ssize_t=read(fd,buf,sizeof(buf) - 1); //返回值读到多少个字节
//fd开始读,读到buf中去,空间是sizeof(buf) - 1

返回值:成功读了多少字节&#160;



write——写文件

char buf[1024]="hehe";
write(fd,buf,strlen(buf));
//buf写到fd中,要写的长度strlen(buf)

返回值是:成功写了多少个字节。



推荐阅读
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Python如何调用类里面的方法
    本文介绍了在Python中调用同一个类中的方法需要加上self参数,并且规范写法要求每个函数的第一个参数都为self。同时还介绍了如何调用另一个类中的方法。详细内容请阅读剩余部分。 ... [详细]
  • 本文介绍了基于c语言的mcs51单片机定时器计数器的应用教程,包括定时器的设置和计数方法,以及中断函数的使用。同时介绍了定时器应用的举例,包括定时器中断函数的编写和频率值的计算方法。主函数中设置了T0模式和T1计数的初值,并开启了T0和T1的中断,最后启动了CPU中断。 ... [详细]
  • c语言\n不换行,c语言printf不换行
    本文目录一览:1、C语言不换行输入2、c语言的 ... [详细]
  • 本文介绍了C函数ispunct()的用法及示例代码。ispunct()函数用于检查传递的字符是否是标点符号,如果是标点符号则返回非零值,否则返回零。示例代码演示了如何使用ispunct()函数来判断字符是否为标点符号。 ... [详细]
  • 本文介绍了一个程序,可以输出1000内能被3整除且个位数为6的所有整数。程序使用了循环和条件判断语句来筛选符合条件的整数,并将其输出。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
author-avatar
平凡岁月ss
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有