#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
Linux C语言多进程拷贝文件
最新推荐文章于 2024-05-15 10:12:16 发布