linux下的基础IO

Linux下IO的系统调用接口   文件流指针   文件描述符  文件重定向

Linux下ext2文件系统    inode节点  软链接/硬链接   动态库和静态库的生成

1.系统调用接口: open、close、write、read、lseek

库函数和系统调用函数的关系:上下级的调用关系

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

        pathname : 文件名称

        flags: 选项标志

        必选项:O_RDONLY只读   O_WRONLY只写   O_RDWR读写

        可选项:O_CREAT:若文件不存在则创建,存在则打开

                      O_EXCL:搭配O_CREAT使用,若文件存在则报错返回

                      O_APPEND:追加写

    代码演示库函数:

/*c库中的io接口
 *  fopen fclose fwrite fread fseek
 */

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>

int main()
{
	//mode: r r+ w w+ a a+
	//r:只读 r+:读写
	//w:只写 w+:读写  若文件不存在则创建,若问阿金存在则清空内容
	//a:写追加 a+:读写打开,追加写,从起始位置读,文件不存在则创建
	FILE* fp = fopen("./test.txt", "w+");
	if(fp == NULL){
		printf("fopen error]n");
		return-1;
	}

	char* ptr = "hello bit!!\n";
	//size_t fwrite(void* ptr, size_t size, size_t nmemb, FILE* stream);
	fseek(fp, 5, SEEK_END);
	if(fwrite(ptr, 1, strlen(ptr), fp) != strlen(ptr)){
		printf("fwirte error\n");
	}

	//int fseek(FILE* stream, long offset, int whence);
	//whence:
	//SEEK_SET  文件起始位置
	//SEEK_CUR  文件读写位置
	//SEEK_END  文件末尾位置
	fseek(fp, 0, SEEK_SET);
	//size_t fread(void* ptr, size_t size, size_t nmmeb, FILE* stream);
	char buf[1024] = { 0 };
	int ret = fread(buf, 1, 1024-1, fp);
	if(ret < 0){
		printf("read error");
	}
	printf("ret:%d buf:%s\n", ret, buf);
	fclose(fp);
	return 0;
}

    代码演示系统调用接口:

/*演示基础io系统调用接口demo
 *  open close read write lseek
 */

#include <stdio.h
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值