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  archivo_com  [parametros]Este es el codigo pero se queda sin responder:
// ejecutar.c
#include <stdio.h>
#include <dos.h>
#include <stdlib.h>
#include <sys\types.h>
int main(int argc, char near  *argv[ ])
{
   int len, i, j, retorna, tam;
   union REGS registros;
   char f1[20] = "0000000000000000000\0";   // FCB1 en blanco
   char f2[20] = "0000000000000000000\0";
   // 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],"\0");
  // estableciendo el bloque de parametros
   par.segmento = 0;
   par.lineacomando = cmd;
   par.fcb1 = f1;
   par.fcb2 = f2;
   registros.h.ah = 0x4b;
   registros.h.al = 0x00;
   registros.x.dx = (unsigned) argv[1];
   registros.x.bx = (unsigned int) ∥   retorna = intdos(®istros, ®istros);
   if (!(registros.x.cflag ? retorna : 0)) 
            { printf("CARRY FLAG IS CLEAR\n"); };
   printf("Comando terminado: %s", argv[2]);
   return 0;
}