内部で clone を使用する c++ で c コードを実行しようとしていますが、解決できないエラーが発生しました。
私のコード:
int variable, fd;
using namespace std ;
int do_something() {
variable = 42;cout << "sana" << endl ;
close(fd);
_exit(0);
}
int main() {
void **child_stack;
char tempch;
variable = 9;
fd = open("test.file", O_RDONLY);
child_stack = (void **) malloc(16384);
printf("The variable was %d\n", variable);
clone(do_something, child_stack,CLONE_VM|CLONE_FILES, NULL);
sleep(1);
printf("The variable is now %d\n", variable);
if (read(fd, &tempch, 1) < 1) {
perror("File Read Error");
exit(1);
}
printf("We could read from the file\n");
return 0;
}
そして私はエラーを得ました:
dell@ubuntu:~$ g++ n.cpp -on n.cpp: 関数 'int main()': n.cpp:40:62: エラー: 'int ( )()' から 'int ( )への変換が無効です(void*)' [-fpermissive] /usr/include/x86_64-linux-gnu/bits/sched.h:83:12: エラー: 'int clone(int ( )(void ), void*, int, void*, ...)' [-fpermissive] dell@ubuntu:~$