嵌入式培训经验分享——基于Linux文件IO操作

1、文件打开

//#include <sys/types.h>
//#include <sys/stat.h>
//#include <fcntl.h>     //头文件
	
    int fd = open("./test1.txt", O_CREAT|O_RDWR,0666);
	//int fd=open("./test.txt",O_RDONLY);
	//int fd=open("./test.txt",O_WRONLY);
	if(fd < 0){
		printf("open errno=%d %s\n",errno,strerror(errno));
		perror("open err");
		return -3;
	}
	printf("open success\n");

       int open(const char *pathname, int flags);
       int open(const char *pathname, int flags,   mode_t mode);
            pathname,文件路径
            flags:  他是一个32bit的整数, 
                每一个bit表示文件的一种属性,比如 某个bit置一表示文件可写,置零表示不可写
                    O_RDONLY    只读
                    O_WRONLY    只写
                    O_RDWR: 读写
                        上述三个必须包含一个.
                    O_APPEND: append-追加        
                    O_CREAT:  创建
                        可以指定一个权限, mode指定权限
                        只有flags参数中包含O_CREAT,mode才能使用
                            0660,表示这是一个 八进制   0x12  23  023
                    O_TRUNC:  如果文件存在,则清空
            返回值:
                成功返回一个 文件描述符,      正数
                失败:  -1,  errno

2、文件的关闭

 //#include <unistd.h>

	int ret = close(fd);
	if(ret <0){
		perror("close err");
		return -3;
	}

       int close(int fd);
        返回值: succes-0
                -1 failed ,errno

3、文件的写入

	char wbuf[]="good morning.";
	ret  = write(fd,wbuf,strlen(wbuf));
	if(ret < 0 ){
		perror("write err");
		return -9;
	}
	return 0; 

       ssize_t write(int fd, const void *buf, size_t count);
            fd:文件描述符
            buf: 存放数据的buf 
            counte:你要求写入的大小B
            返回值:    
                    实际写入的大小
                    -1:失败,errno

4、文件的读取


    	char rbuf[33] = {0};
		ret = read(fd,rbuf,sizeof(rbuf)-1);
		if(ret < 0 ){
			perror("read err");
			return -3;
		}else if(ret ==0){
			printf("end of file\n");
			return 0;
		}
		printf("%s",rbuf);

        #include <unistd.h>

       ssize_t read(int fd, void *buf, size_t count);
            fd:文件描述符
            buf: 数据存放的位置
            count:你要求读多少数据,B
        返回值:
            实际读取的大小        0-表示文件结束    
            -1 failed,errno

5、设置/读取    文件   偏移位置/偏移量

	ret = lseek(fd,0,SEEK_CUR);
	if(ret <0){
		perror("lseek err");
		return -4;
	}
	printf("lseek got current position:%d\n",ret);

       #include <unistd.h>

       off_t lseek(int fd, off_t offset, int whence);
                fd:文件描述符
                offset:偏移量   
                whence:            
                    SEEK_SET: 从头部开始计算  offset>=0
                    SEEK_CUR: 从当前位置计算  offset可正可负
                    SEEK_END: 从尾部开始计量  offset<=0
            返回值:    
                成功 返回的是 当前位置距离头部的偏移量  >=0
                失败 -1,errno
                获取文件大小:
                fsize=lseek(fd,0,SEEK_END);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值