1

我正在编写一个小函数,它使用 ( http://www.vxdev.com/docs/vx55man/vxworks/ref/tftpLib.html ) 从 TFTP 服务器下载文件VxWork-现在我意识到我的 tftpGet( tftpLib)命令返回错误,但我不确定错误代码 1 的含义。在发布的网站上,它说:1

ERRNO
S_tftpLib_INVALID_DESCRIPTOR
S_tftpLib_INVALID_ARGUMENT
S_tftpLib_NOT_CONNECTED

但是我怎么知道1对应的是什么?我的代码的 get 部分如下所示:

/* Initialize and createlocal file handle */
pFile = fopen("ngfm.bin","wb");
if (pFile != NULL)
    {
    /* Get file from TFTP server and write it to the file descriptor */
    status = tftpGet (pTftpDesc, pFilename, pFile, TFTP_CLIENT);
    printf("GOT %s\n",pFilename);
    }
else
    {
    printf("Error in tftpGet()\nfailed to get %s from %s\nERRNO %d",pFilename,pHost, status);
    }
4

2 回答 2

1

试试这个代码:

int status;
if (OK == (status = tftpGet (pTftpDesc, pFilename, fd, TFTP_CLIENT))) {
 printf("tftpGet() successful\n");
} else {
 printf("Error has occurred: %d\n", errno); // errno is where the error is stored
}
于 2013-12-05T18:15:09.703 回答
0

不,事实上的问题是,我没有得到一个有效的文件指针,而是 NULL,因为在 VxWorks 中没有像 Linux 中那样的“当前目录”这样的东西,但我不得不改变我的 fopen 来pFile = fopen("flash:/ngfm.bin","wb");代替。

于 2013-12-05T19:47:24.557 回答