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

8.1作业

文件IO函数实现拷贝文件。子进程先拷贝后半部分,父进程再拷贝前半部分,允许使用sleep函数

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<head.h>
int main(int argc, const char *argv[])
{pid_t cpid=fork();int fd=open("./1.c",O_RDONLY);if(fd<0){ERR_MSG("open");return -1;}printf("open success\n");off_t size=lseek(fd,0,SEEK_END);lseek(fd,0,SEEK_SET);char buf[20]="";ssize_t res=0;if(cpid>0){sleep(1);while(1){bzero(buf,sizeof(buf));off_t size1=lseek(fd,0,SEEK_CUR);if(size1>=size/2)break;res=read(fd,buf,sizeof(buf)-1);printf("%s",buf);}}else if(cpid==0){lseek(fd,size/2,SEEK_SET);while(1){bzero(buf,sizeof(buf));res=read(fd,buf,sizeof(buf)-1);if(0==res){break;}printf("%s",buf);}}else{perror("fork");return -1;}close(fd);while(1)sleep(1);return 0;
}

 从终端获取一个文件的路径以及名字

若该文件是目录文件,则将该文件下的所有文件的属性显示到终端,类似ls -l该文件

若该文件不是目录文件,则显示该文件的属性到终端上,类似ls -l该文件

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<head.h>
void get_filePrmission(mode_t m)
{int a=0400;while(a){if((m&a)!=0)putchar('r');elseputchar('-');a=a>>1;if((m&a)!=0)putchar('w');elseputchar('-');a=a>>1;if((m&a)!=0)putchar('x');elseputchar('-');a=a>>1;}return;
}
void get_fileType(mode_t m)
{if(S_ISREG(m))putchar('-');else if(S_ISDIR(m))putchar('d');else if(S_ISCHR(m))putchar('c');else if(S_ISBLK(m))putchar('b');else if(S_ISFIFO(m))putchar('p');else if(S_ISLNK(m))putchar('l');elseputchar('s');return;
}
void get_localtime(time_t t)
{struct tm* info=NULL;info=localtime(&t);printf("%4d-%02d-%02d %02d:%02d:%02d",info->tm_year+1900,\info->tm_mon+1,info->tm_mday,info->tm_hour,\info->tm_min,info->tm_sec);fflush(stdout);
}
int wjsxsc(struct stat buf)
{get_fileType(buf.st_mode);get_filePrmission(buf.st_mode);struct passwd *pwd=getpwuid(buf.st_uid);if(NULL==pwd){ERR_MSG("getpwuid");return -1;}printf(" %s ",pwd->pw_name);struct group *gid=getgrgid(buf.st_gid);if(NULL==gid){ERR_MSG("getgrgid");return -1;}printf("%s",gid->gr_name);printf(" %ld ",buf.st_size);get_localtime(buf.st_ctime);
}
int main(int argc, const char *argv[])
{char l[20]="";char path[300]="";printf("输入一个文件的路径及名字");scanf("%s",l);struct stat buf;if(stat(l,&buf)<0){ERR_MSG("stat");return -1;}if(S_ISDIR(buf.st_mode)){DIR *fp=opendir(l);if(NULL==fp){ERR_MSG("opendir");return -1;}printf("opendir success");int i=1;while(1){struct dirent *rp=readdir(fp);if(NULL==rp){if(0==errno){printf("文件读取成功\n");break;}else{ERR_MSG("readdir");return -1;}}sprintf(path,"%s%s",l,rp->d_name);if(stat(l,&buf)<0){ERR_MSG("stat");return -1;}wjsxsc(buf);printf(" %s\n",rp->d_name);}if(closedir(fp)<0){ERR_MSG("closedir");return -1;}}else{wjsxsc(buf);printf(" %s\n",l);}return 0;
}

相关文章:

8.1作业

文件IO函数实现拷贝文件。子进程先拷贝后半部分&#xff0c;父进程再拷贝前半部分&#xff0c;允许使用sleep函数 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<head.h> int main(int argc, const char *argv[]) {pid_t cpidfo…...

linux-安全技术

文章目录 安全机制墨菲定理信息安全防护的目标安全防护环节常见的安全攻击STRIDE 安全机制 墨菲定理 摘自百度百科 墨菲定律是一种心理学效应&#xff0c;1949年由美国的一名工程师爱德华墨菲&#xff08;Edward A. Murphy&#xff09;提出的&#xff0c;亦称墨菲法则、墨菲…...

如何在免费版 pycharm 中使用 github copilot (chatGPT)?

起因 在 vscode 中使用了 github copilot 以后&#xff0c;感觉这个人工智能还不错。 但 vscode 对于 python 项目调试并不是特别方便&#xff0c;所以想在 Pycharm 中也能使用同一个 github 账号&#xff0c;用上 copilot 的功能。 不需要等待&#xff0c;安装即用&#xff…...

SSD202D-UBOOT-FDT-获取DTB

因为一些需求,我们决定给uboot添加一个功能,在boot阶段识别获取出dtb,然后获取dts参数 DTS引脚是这样设置的 /* * infinity2m-ssc011a-s01a-padmux-display.dtsi- Sigmastar * * Copyright (c) [2019~2020] SigmaStar Technology. * * * This software is licensed under the …...

【Maven】Setting文件分享

<?xml version"1.0" encoding"UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding …...

使用requestAnimationFrame 实现倒计时功能js(简单秒数倒计时)

拿一个简单的例子吧 就是获取验证码的倒计时 一般来说就是60秒 首先可能想到就是 setInterval let count 60 setInterval(() > { count --; }, 1000) 还有一种就是 setTImeout 函数的递归调用 let count 60 function coundown() { count --; if(count >…...

jenkins通过sshPut传输文件的时候,报错Permission denied的SftpException

一、背景 使用jenkins的ssh插件传输文件至远程机器的指定目录&#xff0c;php程序打包后&#xff0c;经过zip压缩为oms.zip zip -rq oms.zip ./ -x .git/* -x .env然后我们求md5值 md5sum oms.zip最后执行传输。 09:03:02 Executing command on ssh[116.61.10.149]: mkdir…...

【Python】数据分析+数据挖掘——探索Pandas中的数据筛选

1. 前言 当涉及数据处理和分析时&#xff0c;Pandas是Python编程语言中最强大、灵活且广泛使用的工具之一。Pandas提供了丰富的功能和方法&#xff0c;使得数据的选择、筛选和处理变得简单而高效。在本博客中&#xff0c;我们将重点介绍Pandas中数据筛选的关键知识点&#xff…...

[数据集][目标检测]天牛数据集目标检测数据集VOC格式3050张

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;3050 标注数量(xml文件个数)&#xff1a;3050 标注类别数&#xff1a;1 标注类别名称:["longicorn"] …...

python_day16_设计模式

“”“单例模式”“” “”“工厂模式”“” class Person:passclass Worker(Person):passclass Student(Person):passclass Teacher(Person):passclass Factory:def get_person(self, p_type):if p_type w:return Worker()elif p_type s:return Student()else:return Te…...

uniapp开发小程序-实现中间凸起的 tabbar

一、效果展示&#xff1a; 二、代码实现&#xff1a; 1.首先在pages.json文件中进行tabbar的样式和列表配置&#xff0c;代码如下&#xff1a; {"pages": [ //pages数组中第一项表示应用启动页&#xff0c;参考&#xff1a;https://uniapp.dcloud.io/collocation/p…...

Vue引入与Vue拦截原理

1. vue引入 第一种方法&#xff1a;在线引入 <script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 第二种方法&#xff1a;本地引入 2. Vue拦截原理——例题 el用于绑定id&#xff0c;data用于定义数据如下例题 <!DOCTYPE html&…...

2023年电赛---运动目标控制与自动追踪系统(E题)OpenMV方案

前言 &#xff08;1&#xff09;废话少说&#xff0c;很多人可能无法访问GitHub&#xff0c;所以我直接贴出可能要用的代码。此博客还会进行更新&#xff0c;先贴教程和代码 &#xff08;2&#xff09;视频教程&#xff1a; https://singtown.com/learn/49603/ &#xff08;3&a…...

6G内存运行Llama2-Chinese-7B-chat模型

6G内存运行Llama2-Chinese-7B-chat模型 Llama2-Chinese中文社区 第一步&#xff1a; 从huggingface下载 Llama2-Chinese-7b-Chat-GGML模型放到本地的某一目录。 第二步&#xff1a; 执行python程序 git clone https://github.com/Rayrtfr/llama2-webui.gitcd llama2-web…...

项目经理必备-项目总体计划模板-制式文件,可直接填写使用-公司可用

合同中完整项目名称&#xff0c;黑体&#xff0c;28号字&#xff0c; 居中对齐&#xff0c;项目名称较长时换行填写 当前文档名称&#xff0c;黑体&#xff0c;小初&#xff0c; 居中对齐&#xff0c;文档名称较长时 换行填写 版 本 号 x.x 编制人 日期 20xx年xx月xx日…...

正则表达式系列|(以xx开头xx结尾提取、切分、替换)

正则表达式系列|&#xff08;以xx开头xx结尾提取、切分、替换&#xff09; 文章目录 正则表达式系列|&#xff08;以xx开头xx结尾提取、切分、替换&#xff09;[TOC] 前言一、以xx开头xx结尾进行数据处理&#xff1f;1.以xx开头xx结尾对文本拆分2.以xx开头xx结尾提取内容3.以xx…...

金融学复习博迪(第1-5章)

第一部分 金融和金融体系 第1章 金融学 金融&#xff1a;资金的流通&#xff0c;即储蓄&#xff0c;信贷、汇兑、股票和证券交易等经济活动的总称。 金融学&#xff1a;研究货币流通的学问。 传统的金融学研究领域大致有两个方向&#xff1a; >宏观层面的金融市场运行理论…...

【前端知识】React 基础巩固(三十七)——自定义connect高阶组件

React 基础巩固(三十七)——自定义connect高阶组件 一、手撸一个自定义connect高阶组件 import { PureComponent } from "react"; import store from "../store";/*** connect的参数&#xff1a;* 参数一&#xff1a; 函数* 参数二&#xff1a; 函数* 返…...

前端PDF导出,使用html2Canvas和jsPDF插件

import html2Canvas from "html2canvas"; import jsPDF from "jspdf"; export function downloadPDF(dom, filename) {const scale 2;window.pageYOffset 0;// 滚动到顶部&#xff0c;避免打印不全document.documentElement.scrollTop 0;document.body.…...

Android 设备兼容性使用详解

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、设备兼容性分类二、硬件设备兼容三、软件 APP 兼容四、兼容不同语言五、兼容不同分辨率六、兼容不同屏幕方向布局七、兼容不同硬件 Feature八、兼容…...

PaddlePaddle GPU环境搭建:从驱动到深度学习库的完整指南

1. 为什么需要GPU加速深度学习&#xff1f; 如果你刚接触深度学习&#xff0c;可能会疑惑为什么大家都在讨论GPU。简单来说&#xff0c;GPU就像是个超级计算器&#xff0c;能同时处理大量简单计算。想象你要算100万道加减法题&#xff0c;用普通计算器&#xff08;CPU&#xf…...

Mongo(2): MongoDB权限认证实战——从零配置用户角色与访问控制

1. MongoDB权限认证的必要性 第一次接触MongoDB时&#xff0c;很多人都会被它"开箱即用"的特性吸引——安装完成后不需要任何配置就能直接操作数据库。这种便利性在开发测试阶段确实很友好&#xff0c;但一旦进入生产环境&#xff0c;就相当于把自家大门敞开给所有人…...

Magma智能剪辑系统:视频自动生成实战

Magma智能剪辑系统&#xff1a;视频自动生成实战 1. 引言 想象一下这样的场景&#xff1a;你有一个精彩的视频创意&#xff0c;写好了详细的脚本&#xff0c;但面对一堆零散的素材片段却无从下手。传统的视频剪辑需要逐帧挑选、拼接、添加转场&#xff0c;一个几分钟的视频可…...

如何通过开源数据集创造商业价值:Awesome Public Datasets全攻略

如何通过开源数据集创造商业价值&#xff1a;Awesome Public Datasets全攻略 【免费下载链接】awesome-public-datasets A topic-centric list of HQ open datasets. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-public-datasets 在数据驱动决策的时代&a…...

PyTorch 3.0静训性能断崖预警:当AllReduce延迟>8.3ms或图编译耗时>117s时,你的训练任务已在 silently fail——附实时诊断CLI工具

第一章&#xff1a;PyTorch 3.0静态图分布式训练的静默失效危机全景PyTorch 3.0 引入的 TorchScript 静态图编译机制与 torch.distributed 的深度耦合&#xff0c;在多节点多卡场景下暴露出一类高危静默失效现象&#xff1a;训练进程持续运行、梯度同步无报错、loss 曲线看似收…...

PasteMD模板功能详解:创建个性化转换规则

PasteMD模板功能详解&#xff1a;创建个性化转换规则 你是不是经常从AI对话或者网页上复制内容到Word时&#xff0c;格式总是乱七八糟&#xff1f;公式变成乱码&#xff0c;表格错位&#xff0c;代码块失去高亮&#xff1f;PasteMD就是专门解决这个问题的神器&#xff0c;而它…...

usearch的内存泄漏自动化测试:在CI中集成泄漏检测

usearch的内存泄漏自动化测试&#xff1a;在CI中集成泄漏检测 【免费下载链接】usearch Fastest Open-Source Search & Clustering engine for Vectors & &#x1f51c; Strings in C, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolf…...

掌握罗技鼠标宏的5个技术维度:从原理到实战优化

掌握罗技鼠标宏的5个技术维度&#xff1a;从原理到实战优化 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 一、技术原理解析&#xff1a;机械补…...

3步搞定大麦网自动抢票:告别手速不够的时代

3步搞定大麦网自动抢票&#xff1a;告别手速不够的时代 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 还在为抢不到心仪演唱会门票而烦恼吗&#xff1f;当周杰伦、五月天等热…...

Modelsim与Vivado仿真差异:从阻塞赋值到存储IP的深度解析

1. 当仿真结果“精神分裂”&#xff1a;一次真实的噩梦Debug之旅 昨天我经历了一场堪称“硬件工程师噩梦”的Debug。我和队友完成了一个LeNet神经网络推理的硬件实现&#xff0c;在Modelsim里跑得顺风顺水&#xff0c;功能验证完美通过。但当我们信心满满地准备移植到Vivado平台…...