Ejecutar programa con funcion intdos() en DOS
Hola, estoy intentando cargar y ejecutar archivos .COM desde otro programa, SIN utilizar el EXEC explicitamente, solo llamadas al sistema de DOS ( Funcion INTDOS).
El problema es cuando trato de enviar un BLOQUE DE PARAMETROS para pasarle parametros al .COM que se ejecutará.
Ejemplo: c:ejecutar nombre_comando [parametros]
Este es el codigo pero se queda sin responder:
// ejecutar.c
#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#include <systypes.h>
int main(int argc, char near *argv[ ])
{
int len, i, j, retorna, tam;
union REGS registros;
char f1[20] = "0000000000000000000 "; // FCB1 en blanco
char f2[20] = "0000000000000000000 ";
// bloque de parametros para pasar al BX
struct parametros {
short int segmento;
char* lineacomando;
char* fcb1;
char* fcb2;
} par;
char *cmd; // linea de comando
cmd[0] = (char) strlen(argv[2]);
strcpy(&cmd[1],argv[2]);
strcat(&cmd[1],"
El problema es cuando trato de enviar un BLOQUE DE PARAMETROS para pasarle parametros al .COM que se ejecutará.
Ejemplo: c:ejecutar nombre_comando [parametros]
Este es el codigo pero se queda sin responder:
// ejecutar.c
#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#include <systypes.h>
int main(int argc, char near *argv[ ])
{
int len, i, j, retorna, tam;
union REGS registros;
char f1[20] = "0000000000000000000 "; // FCB1 en blanco
char f2[20] = "0000000000000000000 ";
// bloque de parametros para pasar al BX
struct parametros {
short int segmento;
char* lineacomando;
char* fcb1;
char* fcb2;
} par;
char *cmd; // linea de comando
cmd[0] = (char) strlen(argv[2]);
strcpy(&cmd[1],argv[2]);
strcat(&cmd[1],"
