当前位置: 首页 > news >正文

Linux标准IOday3

1:思维导图

2 :使用3语言编写一个简易的界面,界面如下
        1:标准输出流
        2:标准错误流
        3:文件流

        要求:按1的时候,通过printf输出数据,按2的时候,通过perror输出数据,按3的时候将输入写入文件中,同时通过dup2函数,将标准错误流重定向到错误日志,将文件流重定向到终端

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc, const char *argv[])
{int err=open("err.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);int file=open("1.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);char arr[10]="haha";while(1){printf("1.标准输出流\n");printf("2.标准错误流\n");printf("3.文件流\n");int n=0;scanf("%d",&n);while(getchar()!=10);switch(n){case 1:printf("std_out\n");break;case 2:perror("std_err\n");break;case 3:write(file,arr,strlen(arr));dup2(err,2);dup2(1,file);break;default:return 1;}}close(err);close(file);return 0;
}



3:使用stat函数判断一个文件是否存在 同组人可执行 权限,如果存在则去除该权限,如果不存在则追加该权限,自己想办法查询 更改文件权限的函数是什么

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>int main(int argc, const char *argv[])
{if(argc < 2){printf("请输入文件名\n");}int fd = open(argv[1],O_WRONLY |O_CREAT|O_TRUNC);struct stat buf={0};stat(argv[1],&buf);perror("stat:");mode_t mode = buf.st_mode;if((mode | 0010) == mode){mode &= ~(0010);}else{mode |=0010;}fchmod(fd,mode);close(fd);return 0;
}



http://www.mrgr.cn/news/83202.html

相关文章:

  • 详细解释 Vue 中的 h 函数和 render 函数:
  • 洛谷 P3000 [USACO10DEC] Cow Calisthenics G
  • C#使用MVC框架创建WebApi服务接口
  • SQLite 调试与性能优化指南
  • Pytest钩子函数,测试框架动态切换测试环境
  • CSS——26. 伪元素2(“::before ,::after”)
  • yum换源
  • Spring——自动装配
  • 【python基础——异常BUG】
  • redis:安装部署、升级以及失败回退
  • 【算法】八大排序算法
  • UI自动化测试框架playwright--初级入门
  • 音视频入门基础:MPEG2-PS专题(5)——FFmpeg源码中,解析PS流中的PES流的实现
  • K-means算法在无监督学习中的应用
  • 第四、五章图论和网络爬虫+网络搜索
  • python虚拟环境的使用
  • C# 对象和类型(结构)
  • ArrayList和HashMap区别
  • 2025新年源码免费送
  • 【JavaEE进阶】获取Cookie/Session
  • 强化学习入门
  • 【C++】16.stack和queue的使用
  • 【TI毫米波雷达】DCA1000不使用mmWave Studio的数据采集方法,以及自动化实时数据采集
  • UI自动化测试保姆级教程--pytest详解(精简易懂)
  • halcon三维点云数据处理(六)find_box_3d
  • 创建Java项目,并添加MyBatis包和驱动包