Originariamente inviato da XWolverineX
...
Avete altre spiegazioni?
Ulteriori spiegazioni no ma un esempio ( ...pratico come piace a me... ) :
Programma 'figlio' "Int_main.cpp" :
codice:
/**
* Nome file : "Int_main.cpp"
*
**/
#include <process.h>
#include <stdlib.h>
#include <stdio.h>
int main( int argc, char *argv[] )
{
int a;
if( argc == 0 ) return 999;
a = atoi(argv[1]);
a *= 2;
return a;
}
Programma 'padre' "Int_main_Parent.cpp" :
(questo mi funziona solo con il BCC32, con il GCC mi va in crash ... Magari tu riesci a farlo funzionare. )
codice:
/**
* Nome file : "Int_main_Parent.cpp"
*
**/
#include <process.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main( int , char *argv[] )
{
unsigned int numero, result;
char *parametro, *digit;
do
{
printf("\nInserisci un numero da passare (0 per uscire): ");
scanf("%s", digit);
numero = atoi(digit);
if(numero>0 )
{
itoa(numero, parametro, 10);
printf("\nPasso il valore : %s", parametro);
result = spawnl(P_WAIT, "Int_main.exe", argv[0], parametro, NULL);
if (result == -1)
{
perror("Error from spawnl");
getch();
exit(1);
}
else
printf("\nValore di ritorno : %i\n", result);
}
} while(digit[0] != '0' );
return 0;
}
Originariamente inviato da Ikitt
...
void main() -> pre standard, discutibile, i compilatori lo fanno ancora passare ma sarebbe deprecato
...
Quoto