如果建网站,网站建设外文文献,网站备案提交,山西免费网站建设1.思维导图 2.练习 1#xff1a;使用C语言编写一个简易的界面#xff0c;界面如下 1#xff1a;标准输出流 2#xff1a;标准错误流 3#xff1a;文件流 要求#xff1a;按1的时候#xff0c;通过printf输出数据#xff0c;按2的时候#xff0c;通过p…1.思维导图 2.练习 1使用C语言编写一个简易的界面界面如下 1标准输出流 2标准错误流 3文件流 要求按1的时候通过printf输出数据按2的时候通过perror输出数据按3的时候将输入写入文件中 同时通过dup2函数将标准错误流重定向到错误日志将文件流重定向到终端 #include stdio.h
#include stdlib.h
#include string.h
#include unistd.h
#include fcntl.hvoid standard_output() {printf(标准输出.\n);
}void standard_error() {perror(标准错误.);
}void file_stream(const char *filename) {char buffer[256];printf(输入文本:\n );fgets(buffer, sizeof(buffer), stdin);FILE *file fopen(filename, a);if (file NULL) {perror(打开失败);return;}fprintf(file, %s, buffer);fclose(file);printf(写入成功\n);
}int main() {int choice;char *error_log error.log;// 标准错误定向int error_fd open(error_log, O_WRONLY | O_CREAT | O_APPEND, 0644);if (error_fd -1) {perror(打开失败error.log);return EXIT_FAILURE;}dup2(error_fd, STDERR_FILENO);// 文件流定向终端int term_fd dup(STDOUT_FILENO);while (1) {printf(\nMenu:\n);printf(1: 标准输出流\n);printf(2: 标准错误流\n);printf(3: 文件流\n);printf(4: 退出\n);printf(输入选项: );if (scanf(%d, choice) ! 1) {fprintf(stderr, 无效重新输入 \n);while (getchar() ! \n); // Clear input buffercontinue;}getchar(); // Consume newlineswitch (choice) {case 1: //标准输出流standard_output();break;case 2: //标准错误流 standard_error();break;case 3: //文件流 dup2(term_fd, STDOUT_FILENO);file_stream(output.txt);break;case 4:close(error_fd);printf(退出.\n);return EXIT_SUCCESS;default:fprintf(stderr, 无效重新输入\n);break;}}return 0;
}2使用stat函数判断一个文件是否存在 同组人可执行 权限如果存在则去除该权限如果不存在则追加该权限 未完待续