|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2006
Città: Rome
Messaggi: 781
|
[C] Funzione clone
Salve
non capisco bene come si dichiari la funzione clone: io ho fatto così Codice:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sched.h>
int test(int);
int main(int argc, char** argv)
{
int* param = malloc(sizeof(int));
*param = 5;
int* stack = malloc(sizeof(int));
int c = 2;
/*int clone(int (*fn)(void *), void *child_stack,
int flags, void *arg, ...*/
int result = clone(test(c), stack + sizeof(int), CLONE_PARENT, c);
return 0;
}
int test(int a)
{
printf("In test function a = %d\n", a);
a = 19;
printf("a = %d\n", a);
return a;
}
Codice:
1.c: In function main: 1.c:21: warning: passing argument 1 of clone makes pointer from integer without a cast 1.c:21: warning: passing argument 4 of clone makes pointer from integer without a cast Grazie a tutti
__________________
My config: Intel i7-9700K CPU, 32GB RAM, NVIDIA GeForce FE 3080
My Steam profile: Njk00 Fondatore e amministratore del campionato online di F1 su PC https://f1abruzzoedintorni.files.wordpress.com/ |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
per comiciare il prototipo della funzione test dovrebbe essere questo:
Codice:
int test(void*) poi la clone dovresti chiamarla cosi: Codice:
clone(test, stack + sizeof(int), CLONE_PARENT, c) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2006
Città: Rome
Messaggi: 781
|
Grazie mille.
L'errore dello stack non l'avevo proprio pensato... Davvero grazie
__________________
My config: Intel i7-9700K CPU, 32GB RAM, NVIDIA GeForce FE 3080
My Steam profile: Njk00 Fondatore e amministratore del campionato online di F1 su PC https://f1abruzzoedintorni.files.wordpress.com/ |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:05.



















