部分系统函数实现

cp命令的实现代码

#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>int main(int argc, char* argv[]) {if (argc != 3) {fprintf(stderr, "Usage: %s <source_file> <destination_file>\n", argv[0]);return 1;}int fd = open(argv[1], O_RDONLY); // 打开源文件,只读方式if (fd < 0) {perror("打开源文件错误");return 1;}char buf[256];int rd = read(fd, buf, sizeof(buf)); // 读取源文件内容if (rd < 0) {perror("读取源文件失败");close(fd);return 1;}close(fd);int fd1 = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, 0664); // 创建或打开目标文件,截断内容if (fd1 < 0) {perror("打开目标文件错误");return 1;}int wd = write(fd1, buf, rd); // 将从源文件读取的内容写入目标文件if (wd < 0) {perror("写入目标文件错误");close(fd1);return 1;}close(fd1);return 0;
}

pwd指令

#include<unistd.h>
#include<fcntl.h>
#include<stdio.h>
#include<stdlib.h>int main(int argc,char*argv[])
{char buf[256];getcwd(buf,256);printf("\n%s\n",buf);return 0;}

ls指令

#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>int main(int argc,char*argv[]) {// DIR *dir;// struct dirent *ent;// dir = opendir(".");// if (dir == NULL) {//     perror("Unable to open directory");//     return EXIT_FAILURE;// }// while ((ent = readdir(dir)) != NULL) {//     printf("%s\n", ent->d_name);// }// closedir(dir);DIR *dp;struct dirent *sdp;dp = opendir(argv[1]);if(dp==NULL){perror("opendir error");exit(1);}int count = 0;while((sdp= readdir(dp))!=NULL){printf("%-20s\t",sdp->d_name);count++;if(count%5!=0){continue;}else{printf("\n");}}printf("\n");closedir(dp);return EXIT_SUCCESS;
}

cat指令

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<string.h>
int main(int argc,char*argv[])
{int n;if(argc==4){if(strcmp(argv[2],">")==0){int fd1 = open(argv[3],O_RDWR|O_CREAT|O_TRUNC,0664);if(fd1==-1){perror("open error");exit(1);}dup2(fd1,STDOUT_FILENO);}}char buf[1024];int fd2 = open(argv[1],O_RDONLY);if(fd2==-1){perror("open read error");exit(1);}while((n=read(fd2,buf,sizeof(buf)))){write(STDOUT_FILENO,buf,n);}return 0;
}

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

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

相关文章

探索【注解】、【反射】、【动态代理】,深入掌握高级 Java 开发技术

文章目录 Java注解1.注解基础2.注解原理 反射1.Class对象的获取1.基础公共类1.1.Object > getClass()1.2.类名.class 的方式1.3.Class.forName() 2.获取类的成员变量3.获取成员方法并调用4.反射优缺点 代理1.结构2.静态代理2.1.案例1-计算前后校验2.1.1.创建接口2.1.2.创建实…

Ubuntu20.04 安装jekyll

首先使根据官方文档安装&#xff1a;Jekyll on Ubuntu | Jekyll • Simple, blog-aware, static sites 如果没有报错&#xff0c;就不用再继续看下去了。 我这边在执行gem install jekyll bundler时报错&#xff0c;所以安装了rvm&#xff0c;安装rvm可以参考这篇文章Ubuntu …

javaweb——socket

定义 Socket&#xff08;套接字&#xff09;是计算机网络编程中的一种抽象&#xff0c;用于在网络上进行通信。它允许计算机之间通过网络进行数据传输。在Java中&#xff0c;Socket类提供了对TCP/IP协议的支持&#xff0c;通过它可以创建客户端和服务端程序&#xff0c;实现网…

FLUENT Meshing Watertight Geometry工作流入门 - 9 生成体网格

本视频中学到的内容&#xff1a; 讨论体网格的重要性&#xff0c;并了解生成体网格的不同方法 了解体网格质量&#xff0c;以及如何改进 视频链接&#xff1a; FLUENT Meshing入门教程-9生成体网格_哔哩哔哩_bilibili 体网格生成是使用大量离散体积或单元来离散化/表示计算模…

[蓝桥2022国赛] 费用报销

费用报销 问题描述 小明在出差结束后返回了公司所在的城市, 在填写差旅报销申请时, 粗心 的小明发现自己弄丢了出差过程中的票据。 为了弥补小明的损失, 公司同意小明用别的票据进行报销, 但是公司财务 要求小明提交的票据中任意两张的日期差不小于 K 天, 且总金额不得超过实…

跨境云手机如何简化tiktok运营流程

如今&#xff0c;tiktok已经成为世界范围内都非常流行的社交媒体平台。然而在大多数情况下&#xff0c;由于网络原因&#xff0c;tiktok无法在国内使用&#xff0c;但依然有越来越多的人注册tiktok号码、建立tiktok矩阵。原因是tiktok仍然有大量的流量可供商业使用&#xff0c;…

java面试题基础篇

1.java面向对象三大特性 ​ 封装&#xff08;Encapsulation&#xff09;&#xff1a;是面向对象方法的重要原则&#xff0c;就是把对象的属性和操作&#xff08;或服务&#xff09;结合为一个独立的整体&#xff0c;并尽可能隐藏对象的内部实现细节。 ​ 继承&#xff1a;就是…

php 函数(方法)、日期函数、static关键字

php 函数、日期函数 1. php函数2. 日期函数3. static 1. php函数 函数是一段可重复使用的代码块&#xff0c;可以将一系列操作封装起来&#xff0c;使代码更加模块化、可维护和可重用&#xff0c;来大大节省我们的开发时间和代码量&#xff0c;提高编程效率。 <?php// …

Sora OpenAI 101教程(一):从文本生成令人兴奋的视频的 AI 模型

想象一下&#xff0c;您可以通过简单的文本提示创建令人惊叹的视频&#xff0c;例如“一个人带着狗在月球上行走”。听起来不可能&#xff0c;对吧&#xff1f;好吧&#xff0c;现在不再这样了&#xff0c;感谢 OpenAI 的最新人工智能模型 Sora&#xff0c;它可以从文本生成令人…

情人节官宣频发,白敬亭宋轶等多对情侣陷情风。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 情人节甜蜜满溢&#xff0c;娱乐圈情侣们争相晒幸福。2024年&…

Linux中字符串使用单引号与双引号的区别

一、 单引号 name钱学森 str我很崇拜 $name echo $str 输出结果为: 我很崇拜 $name 单引号字符串的限制&#xff1a; 单引号里的任何字符都会原样输出&#xff0c;单引号字符串中的变量是无效的,单引号字串中不能出现单独一个的单引号&#xff08;对单引号使用转义符后也不…

《苍穹外卖》知识梳理P11-Apache POI导出报表

一.Apache POI 可以通过Apache POI处理excel文件&#xff0c;核心操作是读和写 应用场景 银行网银交易明细各种业务系统导出Excel报表批量导入业务数据 使用步骤 1.导入maven坐标 <dependency><groupId>org.apache.poi</groupId><artifactId>poi&…

Qt应用软件【协议篇】CAN协议及代码示例

文章目录 CAN简介基本概念CAN是如何工作的?CAN的特点CAN工作原理多主通信消息优先级仲裁机制错误处理数据帧格式位填充(Bit Stuffing)CAN报文结构数据帧(Data Frame)远程帧(Remote Frame)错误帧(Error Frame)过载帧(Overload Frame)

安装ts-node有感

起因&#xff1a;想要在vsCode上运行ts脚本 解决方案&#xff1a; 1.安装vsCode插件 code runner 2.全局安装ts-node 这一步遇到三个问题&#xff1a; ①.node版本问题&#xff1a;需安装版本18以上node&#xff0c;可使用nvm去控制不同的node版本 ②.certificate has exp…

NHANES数据库使用(1)

官网&#xff1a;NHANES - National Health and Nutrition Examination Survey Homepagehttps://www.cdc.gov/nchs/nhanes/index.htm 1、打开数据库 2、 选择数据集 B区检索方法和变量。C区检索数据集。A区含有B区和C区的功能。选择 NHANES 2017-March 2020打开。 3、打开数据…

flowpilot Pxiel 6 redmi K30 Pro

Installation flowdriveai/flowpilot Wiki GitHub Flowpilot can be installed on: Android phone Non-rooted running Android 10Android 11Android 12Rooted running Android 13 requires rootDesktop pc with Ubuntu > 20.04. 安装Termux https://f-droid.org/repo…

Python中的类型提示:增强代码质量和可读性

正文: Python以其强大的动态类型系统著称,然而,为了进一步提升代码的健壮性、可读性和维护性,Python3通过PEP 484引入了类型提示机制。类型提示并非强制要求Python程序员使用静态类型,而是作为一种可选特性,让开发者在适当的地方标明变量、函数参数和返回值的预期类型。…

5G固定无线接入(FWA)

固定无线接入&#xff08;FWA&#xff09; 固定无线接入&#xff08;Fixed Wireless Access&#xff09;是使用两个固定点之间的无线电链路提供无线宽带的过程。换句话说&#xff0c;固定无线是一种为家庭或企业提供无线互联网接入的方式&#xff0c;无需铺设光纤和电缆来提供最…

12.20 校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 岚图汽车2024届校园招聘补录中 校招 | 岚图汽车2024届校园招聘补录中 2、校招 | 爱玛科技集团2024届校园招聘补录 校招 | 爱玛科技集团2024届校园招聘补录 3、校招 | 虎牙2024届…

【Kuiperinfer】笔记01 项目预览与环境配置

学习目标 实现一个深度学习推理框架设计、编写一个计算图实现常见的算子&#xff0c;例如卷积、池化、全连接学会如何进行算子的优化加速使用自己的推理框架推理常见模型&#xff0c;检查结果是否能够和torch对齐 什么是推理框架&#xff1f; 推理框架用于对已经训练完成的模…