IO进程线程第三天(7.31)time,localtime,文件io函数:open,umask,close,write,read,lseek,stat,

news2024/11/17 18:24:05

用read函数完成图片文件拷贝

#include<stdio.h>
#include<head.h>
int main(int argc, const char *argv[])
{
    //umask(0);//将文件权限掩码改为0,使得其他用户可写
    int fd = open("/home/ubuntu/图片/2.jpg",O_RDONLY,0777);//打开图片
    if(fd<0)
    {   
        ERR_MSG("open");
        return -1; 
    }   
    printf("打开成功\n");
    int ff = open("1.jpg",O_WRONLY|O_CREAT|O_TRUNC,0777);//创建图片
    if(ff<0)
    {   
        ERR_MSG("open");
        return -1; 
    }   
    printf("打开成功\n");
    char a[20]="";
    ssize_t res;
    while(1)
    {   
        res=read(fd,a,sizeof(a)-1);
        if(0==res)
            break;
        if(write(ff,a,res)<0)
        {
            ERR_MSG("write");
            return -1; 
        }
    }   
    printf("拷贝完成\n");
    if(close(fd)<0)
    {   
        ERR_MSG("close");
        return -1;                                                                                  
    }   
    printf("关闭成功\n");
    if(close(ff)<0)
    {   
        ERR_MSG("close");
        return -1; 
    }   
    printf("关闭成功\n");

    return 0;
} 

用read实现计算文件大小

#include<stdio.h>
#include<head.h>
int main(int argc, const char *argv[])
{
    int ff = open("1.jpg",O_RDONLY);
    if(ff<0)
    {   
        ERR_MSG("open");
        return -1; 
    }   
    printf("打开成功\n");
    off_t size=lseek(ff,0,SEEK_END);
    printf("图片大小为:%ld\n",size);
    char a;
    long count=0;                                                                                                                
    lseek(ff,0,SEEK_SET);
    while(read(ff,&a,1)>0)
    {   
        count++;
    }   
    printf("图片大小为:%ld\n",count);
    if(close(ff)<0)
    {   
        ERR_MSG("close");
        return -1; 
    }   
    printf("关闭成功\n");

    return 0;
} 

 将文件权限提取修改成循环方式

#include<stdio.h>
#include<head.h>
void get_filePermission(mode_t m)
{
    int a[9]={0400,0200,0100,0040,0020,0010,0004,0002,0001};
    char b[9]={'r','w','x','r','w','x','r','w','x'};
    for(int i=0;i<9;i++)
    {   
        if((m&a[i])==0)
            putchar('-');
        else
            putchar(b[i]);
    }   
}
int main(int argc, const char *argv[])
{
    struct stat buf;
    if(stat("./time.c",&buf)<0)
    {   
        ERR_MSG("stat");
        return -1; 
    }   
    printf("mode: 0%o\n",buf.st_mode);
    get_filePermission(buf.st_mode);
    printf("\n");
    printf("link: %ld\n",buf.st_nlink);
    printf("uid: %d\n",buf.st_uid);
    printf("gid: %d\n",buf.st_gid);
    printf("size: %ld\n",buf.st_size);
    printf("time: %ld\n",buf.st_ctime);

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/816680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无线蓝牙耳机有什么推荐?怎么选择适合自己的耳机?七款蓝牙耳机分享

随着信息技术的不断发展&#xff0c;蓝牙耳机的不断发展也是必然的&#xff0c;可以说蓝牙耳机在大部分人们的生活中是不可缺少的一部分。那么我们该怎么去挑选出适合我们自己的需求的“蓝”朋友呢&#xff1f; 第一款&#xff1a;南卡小音舱lite2蓝牙耳机 推荐指数&#xff…

Android 之 AudioManager ( 音频管理器 )

本节引言&#xff1a; 在多媒体的第一节&#xff0c;我们用SoundPool写了个Duang的示例&#xff0c;小猪点击一个按钮后&#xff0c;突然发出"Duang"的 一声&#xff0c;而且当时的声音很大&#xff0c;吓死宝宝了 &#xff0c;好在不是上班时间&#xff0c;上班时间…

项目管理专业人员能力评价等级证书(CSPM)含金量高吗?

最近 CSPM 证书很热门&#xff0c;CSPM证书虽然发起的时间不长&#xff0c;但获取 CSPM 证书也是目前发展的一个趋势。如果打算在项目管理领域发展的强烈建议尽快获取 CSPM&#xff0c;提前为自己积攒一些资本。 一、什么是 CSPM证书&#xff1f;跟PMP是什么关系&#xff1f; …

SpringBoot中ErrorPage(错误页面)的使用--【ErrorPage组件】

SpringBoot系列文章目录 SpringBoot知识范围-学习步骤–【思维导图知识范围】 文章目录 SpringBoot系列文章目录本系列校训 SpringBoot技术很多很多环境及工具&#xff1a;必要的知识深层一些的知识 上效果图在Spring Boot里使用ErrorPage还要注意的是 配套资源作业&#xff…

IPv6 over IPv4隧道配置举例

配置IPv6 over IPv4手动隧道示例 组网需求 如图1所示&#xff0c;两台IPv6主机分别通过SwitchA和SwitchC与IPv4骨干网络连接&#xff0c;客户希望两台IPv6主机能通过IPv4骨干网互通。 图1 配置IPv6 over IPv4手动隧道组网图 配置思路 配置IPv6 over IPv4手动隧道的思路如下&…

【AI底层逻辑】——篇章5(下):机器学习算法之聚类降维时间序列

续上&#xff1a; 目录 4、聚类 5、降维 6、时间序列 三、无完美算法 往期精彩&#xff1a; 4、聚类 聚类即把相似的东西归在一起&#xff0c;与分类不同的是&#xff0c;聚类要处理的是没有标签的数据集&#xff0c;它根据样本数据的分布特性自动进行归类。 人在认知是…

Apache RocketMQ 远程代码执行漏洞(CVE-2023-37582)

​ 漏洞简介 Apache RocketMQ是一款低延迟、高并发、高可用、高可靠的分布式消息中间件。CVE-2023-37582 中&#xff0c;由于对 CVE-2023-33246 修复不完善&#xff0c;导致在Apache RocketMQ NameServer 存在未授权访问的情况下&#xff0c;攻击者可构造恶意请求以RocketMQ运…

51单片机学习--串口通信

首先需要配置寄存器&#xff1a; 下面这里SCON配0x40和0x50都可以&#xff0c;因为暂时还不需要接受信息&#xff0c;所以REN置1置0都可 void Uart_Init(void) //4800bps11.0592MHz {PCON | 0x80; //使能波特率倍速位SMODSCON 0x50; //8位数据,可变波特率TMOD & 0x0F…

selinum官网文档阅读总结(day 1)

1.selinum的概念和用途 selinum是一套包含了脚本录制&#xff0c;脚本处理&#xff0c;协议规范的自动化测试工具集。其中协议规范里&#xff0c;典型的有web页面操作规范RC和WebDriver。WebDriver针对各浏览器开发&#xff0c;利用操作系统级的调用来模拟用户输入。 2.selin…

【redis】redis部署1主2从3哨兵demo搭建示例

redis版本为7&#xff0c;搭建的架构为1主2从3哨兵的架构。本文是对搭建的过程做一个回忆&#xff0c;过程可能遗漏了某些步骤&#xff0c;见谅。 首先&#xff0c;需要有一个已经安装了的redis。我们从redis源码目录中&#xff0c;找到一个redis.conf文件&#xff0c;这个文件…

2023-07-31 LeetCode每日一题(重排链表)

2023-07-31每日一题 一、题目编号 143. 重排链表二、题目链接 点击跳转到题目位置 三、题目描述 给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为&#xff1a; L0 → Ln → L1 → Ln - 1 →…

海量数据存储与查询 MyCat

一、MyCat概述 1.1 什么是Mycat Mycat是数据库中间件&#xff0c;所谓中间件数据库中间件是连接Java应用程序和数据库中间的软件。 1.2 为什么要用Mycat 我们现在普遍的Java应用程序都是直接连接了MySQL软件进行读写操作&#xff0c;也就是我们在Java中的配置文件等定义了mysq…

Netty3 和Netty4区别

Netty3 和Netty4区别 目录概述需求&#xff1a; 设计思路实现思路分析1.Netty3和Netty4区别2.demo 拓展实现 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better resul…

ALLEGRO之Setup

本文主要讲述ALLEGRO的Setup菜单。 &#xff08;1&#xff09;Design Parameters&#xff1a;设计参数&#xff0c;用于设置单位、显示元素&#xff08;焊盘、阻焊等&#xff09;&#xff1b; &#xff08;2&#xff09;Application Mode&#xff1a;暂不清楚&#xff1b; &…

概念、框架简介--ruoyi学习(一)

开始进行ruoyi框架的学习&#xff0c;比起其他的前后端不分离的&#xff0c;这个起码看的清晰一些吧。 这一节主要是看了ruoyi的官方文档后&#xff0c;记录了以下不懂的概念&#xff0c;并且整理了ruoyi框架中的相关内容。 一些概念 前端 store store是状态管理库&#x…

pip安装lap出现问题

解决方法一 用conda安装&#xff0c;用以下命令&#xff1a; conda install -c conda-forge lap解决方法二 用pip安装&#xff0c;用以下命令&#xff1a; pip install gitgit://github.com/gatagat/lap.git文章目录 解决方法一解决方法二摘要YoloV8改进策略&#xff1a;基…

最全面的接口自动化测试流程、工具及其实践

1、接口自动化测试简介 接口自动化测试是指通过编写脚本或使用自动化工具&#xff0c;对软件系统的接口进行测试的过程。接口测试是软件测试中的一种重要测试方法&#xff0c;主要用于验证系统组件之间的通信和数据交换是否正常。接口自动化测试可以提高测试效率和准确性&#…

SQL项目实战:银行客户分析

大家好&#xff0c;本文将与大家分享一个SQL项目&#xff0c;即根据从数据集收集到的信息分析银行客户流失的可能性。这些洞察来自个人信息&#xff0c;如年龄、性别、收入和人口统计信息、银行卡类型、产品、客户信用评分以及客户在银行的服务时间长短等。对于银行而言&#x…

zookeeper学习(三)基础数据结构

数据模型 在 zookeeper 中&#xff0c;可以说 zookeeper 中的所有存储的数据是由 znode 组成的&#xff0c;节点也称为 znode&#xff0c;并以 key/value 形式存储数据。 整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头。 进入 zookeeper 安装的 …