我在R中使用函数#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
void startProcess(int level, int max);
void fork_r(int level, int max);
int main(int argc, char *argv[]){
int n;
if(argc != 2){
printf("Wrong number of arguments");
exit(-1);
}
n = atoi(argv[1]);
if(n <= 0){
printf("Insert positive integer as argument");
exit(EXIT_FAILURE);
}
fork_r(1, n); //start from level one and go until n
return 0;
}
void fork_r(int level, int max){
if(level > max){
printf("Process: %d \n", getpid()); //if recursion done print pid of leafs
return;
}
if(level % 2 != 0){
startProcess(level, max);
exit(0);
} else {
startProcess(level, max);
startProcess(level, max);
exit(0);
}
}
void startProcess(int level, int max){
pid_t pid = fork();
if(pid == 0){
fork_r(level + 1, max);
} else
return;
}
保存了很多图像。我的函数确实工作正常,但是我遇到的问题是,如果我不够注意的话,我的某些图像将被覆盖。
当我尝试以相同名称保存在同一文件中时,是否有可能保护创建的pdf文件不被覆盖?
例如:
pdf()
第二个命令会强制出错吗?
答案 0 :(得分:2)
您可能会检查文件是否已存在,如果脚本试图覆盖它,则会发出警告。您可以尝试这样的事情:
file <- "C:\\users\\documents\\image1.pdf"
if(!file.exists(file)){
pdf(file)
}else{
warning("File does already exist!")
}
这是您想要实现的吗?
更进一步,您可以使用else
部分使用gsub()
和/或paste()
之类的文件来创建新文件名,以便保存新文件而不覆盖旧文件。