IO练习题

1:使用 dup2 实现错误日志功能 使用 write 和 read 实现文件的拷贝功能,注意,代码中所有函数后面,紧跟perror输出错误信息,要求这些错误信息重定向到错误日志 err.txt 中

 #include <myhead.h>//文件IO实现文件拷贝//把错误重定向到err.txt中int main(int argc, const char *argv[]){//创建错误日志文件int err_fd=open("./err.txt",O_WRONLY|O_CREAT|O_TRUNC|O_APPEND,0664);if(-1==err_fd){perror("err_fd open error");return -1;}//为stderr创建备份int stderr_backup=dup(STDERR_FILENO);//把stderr重定向到错误日志文件err_fdif(-1==dup2(err_fd,STDERR_FILENO)){perror("dup2 error");return -1;}//打开源文件和目标文件完成文件拷贝int src_fd=open("./ceshi1.bmp",O_RDONLY);if(-1==src_fd){perror("src_fd open error");return -1;}int dest_fd=open("./2copy.bmp",O_WRONLY|O_CREAT|O_TRUNC,0664);if(-1==dest_fd){                                                       perror("dest_fd open error");return -1;}//创建文件存取bufchar buf[128]={0};while(1){memset(buf,0,sizeof(buf));int res=read(src_fd,buf,sizeof(buf));if(0==res){break;}write(dest_fd,buf,res);}//手动刷新stdoutfflush(stderr);//恢复stderrdup2(stderr_backup,STDERR_FILENO);//关闭所有文件close(err_fd);close(src_fd);close(dest_fd);return 0;}

 

2:判断一个文件是否拥有用户可写权限,如果拥有,则去除用户可写权限,如果不拥有,则加上用户可写权限 权限更改函数:就是chmod函数,自己去man一下 要求每一次权限更改成功之后,立刻在终端显示当前文件的权限信息 :使用 ls -l显示(使用 system函数配合shell指令 ls -l 来实现)

#include <myhead.h>
//判断一个文件是否具有用户可写权限
//有则删除,无则添加
//修改后并在终端显示文件信息
int main(int argc, const char *argv[])
{struct stat buf;if(-1==stat("./err.txt",&buf)){perror("stat error");return -1;}mode_t mode=buf.st_mode;if(mode==(mode|S_IWUSR)){chmod("./err.txt",mode&(~S_IWUSR));system("ls -l ./err.txt");}else{chmod("./err.txt",mode|S_IWUSR);system("ls -l ./err.txt");}return 0;
}                                            

 

 

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

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

相关文章

实现offsetof宏以及交换一个整数二进制奇偶位的宏

目录 1. offsetof宏2. 交换奇偶位 1. offsetof宏 我们想用宏来实现offsetof函数,首先要了解这个函数的用法。 1.1 offsetof函数的介绍及用法 &#xff08;1&#xff09;功能&#xff1a;用来计算结构体中一个成员在该结构体中的相对起始位置的偏移量&#xff0c;单位是字节。 …

ClamAV:Linux服务器杀毒扫描工具

Clam AntiVirus&#xff08;ClamAV&#xff09;是免费而且开放源代码的防毒软件&#xff0c;软件与病毒码的更新皆由社群免费发布。ClamAV在命令行下运行&#xff0c;它不将杀毒作为主要功能&#xff0c;默认只能查出系统内的病毒&#xff0c;但是无法清除。需要用户自行对病毒…

每周编辑精选|免费使用 Sora 平替、在线运行 Python 基础教程、MCFEND 中国假新闻检测数据集上线

继 ChatGPT 后&#xff0c;OpenAI 又发布了爆炸级产品——Sora 文生视频模型&#xff0c;当其他模型还在努力突破几秒内的连贯性问题时&#xff0c;Sora 已经将视频时长拉到了 60s。不过&#xff0c;目前 Sora 模型仅对小部分研究人员和创意人士开放访问权限。 别担心&#xf…

linux 创建py文件自启动服务

1、新建Python文件 test.py文件内容 print("test service ") 2、新建启动文件 testservice.sh #!/bin/shpython3 test.py 3、新建启动服务 /usr/lib/systemd/system/testservice.service [Unit] Descriptiontestservice Afternetwork.target[Service] ExecSt…

C语言之位段

1.位段的声明 位段的声明和结构是类似的&#xff0c;有两个不同&#xff1a; 1.位段的成员必须是 int、unsigned int 或signed int 。 2.位段的成员名后边有一个冒号和一个数字。 比如&#xff1a; struct A {int _a:2;int _b:5;int _c:10;int _d:30; }; A 就是一个位段类型…

【上海大学计算机组成原理实验报告】二、数据传送实验

一、实验目的 了解在模型机中算术、逻辑运算单元的控制方法。学习机器语言程序的运行过程。通过人工译码&#xff0c;加深对译码器基本工作原理的理解。 二、实验原理 根据实验指导书的相关内容&#xff0c;本次实验所要用的CP226实验仪在手动方式下&#xff0c;运算功能通过…

LeetCode-热题100:160. 相交链表

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&…

centos7 安装 mysql

命令记录&#xff0c;未整理&#xff1b; 1. 下载mysql5.7的安装包&#xff0c;上传到linux系统某个目录中 2. 使用tar -xvf 解压 tar包 tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar 3. 使用 rpm -ivh 安装 mysql rpm -ivh mysql-community-common-5.7.35-1.el7.x8…

数据库学习案例2024-MySQL参数解析总结

MySQL参数log_bin_trust_function_creators介绍 简单介绍一下&#xff0c;当二进制日志启用后&#xff0c;这个变量就会启用。它控制是否可以信任存储函数创建者&#xff0c;不会创建写入二进制日志引起不安全事件的存储函数。如果设置为0&#xff08;默认值&#xff09;&#…

python 三层架构思想写代码。

在 Python 中实现数据库操作的三层架构一般包括以下三层&#xff1a; 数据访问层&#xff08;Data Access Layer&#xff09;&#xff1a;负责与数据库进行交互&#xff0c;执行 SQL 查询和更新操作。 业务逻辑层&#xff08;Business Logic Layer&#xff09;&#xff1a;处理…

视频号小店在哪里登录?入驻的时候需要什么资质?

我是电商珠珠 视频号小店距离现在发展了不过一年多的时间&#xff0c;作为一个新平台就代表着很多机会、红利。所以有很多商家都看准了&#xff0c;准备往这个平台上发展。作为新手来说&#xff0c;还不知道视频号小店登录注册入口以及入驻的时候需要什么资质&#xff0c;接下…

Go语言学习Day6:数组与切片

名人说&#xff1a;莫愁千里路&#xff0c;自有到来风。 ——钱珝 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1. 数组① 什么是数组② 数组的声明③ 初始化数组的几种方式④ 遍历数组元素⑤ 数组为值类型⑥ 数…

禁止软件访问外网

WINDOWS平台上,在特殊情况下我们要防止一些软件偷偷访问外网,比如ResEdit.exe一联网就当掉,只要把WINDOWS的防火墙功能打印,将下面脚本保存为rbt_runas_admin_firewall_block_exe_in_dir.cmd ::runas /user:administrator cmd echo 右击以管理员方式运行 cd /d %~dp0 for /r …

pytest教程-21-失败重跑插件-pytest-rerunfailures

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest插件的基本使用方法&#xff0c;本小节我们讲解一下pytest用例失败重跑插件pytest-rerunfailures。 测试环境不稳定偶发接口超时&#xff08;和服务无关&#xff0c;纯粹是环境问题&…

【C语言】带你完全理解指针(四)函数指针的应用sqort函数的实现

前言&#xff1a; 本文主要是函数指针的重要应用&#xff0c;介绍qsort函数以及模拟实现这样一个不限制使用数据类型的快速排序函数。 回调函数 函数指针有一个非常大的作用就是实现回调函数。非常重要 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xf…

python如何画奥运五环

绘制奥运五环主要涉及到Python中的turtle绘图库运用&#xff1a; 程序源代码为&#xff1a; import turtle turtle.width(10) turtle.color(black) turtle.circle(50) turtle.penup() turtle.goto(120,0) turtle.pendown() turtle.color(red) turtle.circle(50) turtle.penup()…

基于springboot酒店管理平台

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于酒店管理平台系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了酒店管理平台系统&#xff0c;它彻底改变了过…

深入理解 React 中的 children props 和 render props

深入理解 React 中的 children props 和 render props 在 React 中&#xff0c;children props 和 render props 是两种常见的组件复用模式&#xff0c;它们都可以帮助我们更好地组织和复用组件代码。虽然它们的实现方式有所不同&#xff0c;但都能够有效地实现组件之间的数据…

坚持刷题|分发饼干

文章目录 题目思路代码实现实现总结主要步骤时间复杂度 扩展问题 Hello&#xff0c;大家好&#xff0c;我是阿月。坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;今天刷第一个贪心算法&#xff1a;分发饼干 题目 455.分发饼干 思路 要解决这个问题&#xff0c;可以使用…

世界上有那么多条条框框,就是告诉你不用格格都入

在我们的生活、工作和学习中&#xff0c;总是充斥着各种各样的规则和标准。这些条条框框&#xff0c;有时候像是一座座无形的墙&#xff0c;将我们限制在一个狭小的空间里。然而&#xff0c;如果我们换一个角度来看待这些规则&#xff0c;就会发现它们实际上是在告诉我们&#…