IO和进程(进程)

这篇具有很好参考价值的文章主要介绍了IO和进程(进程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今日任务

IO和进程(进程),c语言

代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/wait.h>

/*
 * function:    复制图片
 * @param [ in] 
 * @param [out] 
 * @return      
 */

int main(int argc, const char *argv[])
{
	//打开文件
	int fd=open("./DSCN7970.JPG",O_RDONLY);
	if(fd==-1){
		puts("fd open failed");
		return -1;
	}
	int dest=open("./copy.JPG",O_WRONLY|O_CREAT|O_TRUNC,0664);
	if(dest==-1){
		puts("dest open failed");
		return -1;
	}

	//创建子进程,父进程拷贝前一半,子进程拷贝后一半
	int size=lseek(fd,0,SEEK_END);//获取总字节大小
	printf("size=%d\n",size);
	pid_t pid=fork();
	char c;
	//父进程
	if(pid>0){
		wait(NULL);
		lseek(fd,0,SEEK_SET);
		lseek(dest,0,SEEK_SET);

		puts("parent process copy start");
		for (int i=0; i<size/2; i++)
		{
			read(fd,&c,1);
			write(dest,&c,1);
		}
		puts("parent process copy end");
	}
	else if(pid==0){
		lseek(fd,size/2,SEEK_SET);
		lseek(dest,size/2,SEEK_SET);
		puts("son process copy start");
		for (int i=size/2; i<size; i++)
		{
			read(fd,&c,1);
			write(dest,&c,1);
		}
		puts("son process copy end");
	}else{
		perror("fork");
		return -1;
	}
	puts("copy success");

	//关闭文件
	close(dest);
	close(fd);
	return 0;
}

今日思维

IO和进程(进程),c语言文章来源地址https://www.toymoban.com/news/detail-701530.html

到了这里,关于IO和进程(进程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IO进程线程作业day2

    使用fread和fwrite完成两个图片文件的拷贝 现象展示:  使用read、write完成两个图片文件的拷贝 效果图   3 将时间在文件中跑起来 1、17:30:41 2、17:30:42 3、17:30:43 键入ctrl+c,结束进程后 ... 4、17:35:28 5、17:35:29 效果图:  思维导图

    2024年02月19日
    浏览(28)
  • IO进程线程,文件IO(open),文件(stat)与目录(opendir)属性的读取

          一、文件IO 1、文件io通过系统调用来操作文件 系统调用:系统提供给用户的一组API(接口函数)         open/read/write/close/lseek... 用户空间进程访问内核的接口 把用户从底层的硬件编程中解放出来 极大的提高了系统的安全性 使用户程序具有可移植性(同一系统下) 是操作

    2024年02月11日
    浏览(27)
  • IO进程线程第五天(8.2)进程函数+XMind(守护进程(幽灵进程),输出一个时钟,终端输入quit时退出时钟)

    1.守护进程(幽灵进程) 2.输出一个时钟,终端输入quit时退出时钟        

    2024年02月14日
    浏览(37)
  • IO进程线程day3(2023.7.31)

    文件描述符概念: 练习1:用fread和fwrite实现文件拷贝  练习2:time 功能:从1970-1-1日至今的秒数 原型: 参数: 返回值: 练习3:localtime 功能:将1970-1-1日至今的秒数转换成日历格式 原型: 参数: 返回值: 例题:  练习4:文件描述符的总量 练习5:open 功能:打开一个文件

    2024年02月14日
    浏览(20)
  • IO进程线程day8(2023.8.6)

    管道的原理: 有名管道的特点:  信号的原理: 练习1:pipe 功能:创建一个无名管道,同时打开无名管道的读写端 原型: 参数: 返回值: 小练:  练习2:mkfifo 功能:创建一根有名管道 原型: 参数: 返回值: 练习3:操作有名管道 功能:操作有名管道与用文件IO操作普通

    2024年02月14日
    浏览(29)
  • IO进程线程,文件与目录,实现linux任意目录下ls -la

    注意文件的名字、路径是如何输入的。 函数opendir打开目录,struct dirent,struct stat这些结构体的含义。          readdir()函数是一个用于读取目录内容的系统调用或库函数,在类Unix操作系统中(如Linux)广泛使用。它用于遍历目录,并逐个获取目录中的条目(文件和子目录

    2024年02月10日
    浏览(29)
  • Rust编程语言入门之cargo、crates.io

    通过 release profile 来自定义构建 在https://crates.io/上发布库 通过 workspaces 组织大工程 从 https://crates.io/来安装库 使用自定义命令扩展 cargo release profile: 是预定义的 可自定义:可使用不同的配置,对代码编译拥有更多的控制 每个 profile 的配置都独立于其它的 profile cargo 主要的

    2023年04月09日
    浏览(43)
  • 【当学C语言 或者 java 或者 python时 是不是IO文件操作部分很难学懂?这三道例题帮你理解IO】【IO三道例题】

    示例1 示例2 示例3 注意:我们现在的方案性能较差,所以尽量不要在太复杂的目录下或者大文件下实验

    2024年02月16日
    浏览(41)
  • 算法、语言混编、分布式锁与分布式ID、IO模型

    数据结构和算法是程序的基石。我们使用的所有数据类型就是一种数据结构(数据的组织形式),写的程序逻辑就是算法。 算法是指用来操作数据、解决程序问题的一组方法。 对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源(空间

    2024年02月08日
    浏览(35)
  • C语言面试之旅:掌握基础,探索深度(面试实战之单片机——IO)

            梦想和自由一样,都有代价,但都值得。                                                                                                                                                ----小新         单片机是一种微控制器,它包含一个处

    2024年02月05日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包