使用AIX 64位对exp_expectl进行非法指令

时间:2014-08-04 12:07:17

标签: c unix 64-bit tcl aix

请看一下这个简单的实用程序。当使用操作系统提供的libexpect5.42编译为32位时,它可以在AIX中正常工作。 但是,当链接到我们手动编译的64位libexpect时,我们在调用exp_expectl()时收到非法指令错误。任何想法都受到欢迎。

#include <stdio.h>
#include <stdlib.h>
#include <expect.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>


int 
main (int argc, char** argv, char** arge)
{
  int returnValue = 0;
  int iFd = 0;
  int res = 0;
  exp_loguser = 1;
  exp_timeout = 5;
  exp_is_debugging = 0;

  printf("spawning process without argument\n");
  iFd = exp_spawnl ("ls", "ls",(char*)0  );

  printf ("spawned\n");
  printf ("iFd = %d\n", iFd);

  if (iFd < 0)
  {
     printf ("Return %d\n",iFd);
  }
  else
  {
     res = exp_expectl (iFd, exp_glob,"ls", 0, exp_end);
     printf ("Return %d \n",res);
  }
  return iFd;
}

0 个答案:

没有答案