Linux C语言多进程拷贝文件

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


void err_int(int ret, const char *err)
{
	if (ret == -1)
	{
		perror(err);
		exit(1);
	}
}

void err_str(char *ret, const char *err)
{
	if (ret == MAP_FAILED)
	{
		perror(err);
		exit(1);
	}
}

int main(int argc, char *argv[])
{
	int fd_src, fd_dst, ret, len, i, n;
	char *mp_src, *mp_dst, *tmp_srcp, *tmp_dstp;
	pid_t pid;
	struct stat sbuf;

	if (argc <3 || argc>4)
	{
        // 输入不合法的情况
		printf("Enter like this a.out file_src file_dst [process number]\n");
		exit(1);
	}

	else if(argc == 3)
	{
		n = 5;      // 未指定进程数,默认5个进程
	}
	else if(argc == 4)
	{
		n = atoi(argv[3]);      // 指定的进程数
	}

	fd_src = open(argv[1], O_RDONLY);                         // 读取源文件
	err_int(fd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值