文件IO

1:思维导图

2:使用3语言编写一个简易的界面,界面如下 1:标准输出流 2:标准错误流 3:文件流 要求:按1的时候,通过printf输出数据,按2的时候,通过perror输出数据,按3的时候将输入写入文件中 同时通过dup2函数,将标准错误流重定向到错误日志,将文件流重定向到终端

cs 复制代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc, const char *argv[])
{
	printf("1.标准输出流\n");
	printf("2.标准错误流\n");
	printf("3.文件流\n");
	int err = open("err.txt",O_RDWR|O_CREAT|O_TRUNC,0666);
	int file = open("file.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
	char arr[10]="hello\n";
	int num;
	while(1)
	{
		printf("请输入操作:");
		scanf("%d",&num);
		switch(num)
		{
			case 1:
				printf("标准输出流\n");
				break;
			case 2:
				perror("标准错误流\n");
				break;
			case 3:
				write(file,arr,sizeof(arr));
				dup2(err,2);
				dup2(0,file);
				break;
			default:
				return 0;

		}
	}
	close(err);
	close(file);

	return 0;
}

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

cs 复制代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc, const char *argv[])
{
	printf("1.标准输出流\n");
	printf("2.标准错误流\n");
	printf("3.文件流\n");
	int err = open("err.txt",O_RDWR|O_CREAT|O_TRUNC,0666);
	int file = open("file.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
	char arr[10]="hello\n";
	int num;
	while(1)
	{
		printf("请输入操作:");
		scanf("%d",&num);
		switch(num)
		{
			case 1:
				printf("标准输出流\n");
				break;
			case 2:
				perror("标准错误流\n");
				break;
			case 3:
				write(file,arr,sizeof(arr));
				dup2(err,2);
				dup2(0,file);
				break;
			default:
				return 0;

		}
	}
	close(err);
	close(file);

	return 0;
}
相关推荐
小年糕是糕手9 分钟前
【数据结构】双向链表“0”基础知识讲解 + 实战演练
c语言·开发语言·数据结构·c++·学习·算法·链表
PyHaVolask1 小时前
数据结构与算法分析
数据结构·算法·图论
小王C语言1 小时前
封装红黑树实现mymap和myset
linux·服务器·算法
大佬,救命!!!1 小时前
算法实现迭代2_堆排序
数据结构·python·算法·学习笔记·堆排序
天桥下的卖艺者2 小时前
R语言手搓一个计算生存分析C指数(C-index)的函数算法
c语言·算法·r语言
Espresso Macchiato2 小时前
Leetcode 3715. Sum of Perfect Square Ancestors
算法·leetcode·职场和发展·leetcode hard·树的遍历·leetcode 3715·leetcode周赛471
草莓熊Lotso2 小时前
《C++ Stack 与 Queue 完全使用指南:基础操作 + 经典场景 + 实战习题》
开发语言·c++·算法
敲上瘾2 小时前
单序列和双序列问题——动态规划
c++·算法·动态规划
太过平凡的小蚂蚁2 小时前
策略模式:让算法选择像点菜一样简单
算法·策略模式
科研小白_5 小时前
基于遗传算法优化BP神经网络(GA-BP)的数据时序预测
人工智能·算法·回归