2013-12-05 10 views
1

Я пишу небольшую функцию, которая загружает файл с сервера TFTP с помощью VxWork 's tftpLib (http://www.vxdev.com/docs/vx55man/vxworks/ref/tftpLib.html) - теперь я понял, что мой tftpGet() команда возвращает ошибку 1, но я m не уверен, что означает код ошибки 1. На размещенном сайте говорится:tftpGet ошибка из tftpLib в VxWorks

ERRNO 
S_tftpLib_INVALID_DESCRIPTOR 
S_tftpLib_INVALID_ARGUMENT 
S_tftpLib_NOT_CONNECTED 

Но как я знаю, что 1 соответствует? ГЕТ часть моего кода выглядит следующим образом:

/* 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); 
    } 

ответ

0

Нет, проблема в том, было то, что я Жду '; т получить действительный указатель на файл, но NULL потому что нет такой вещи, как «текущий каталог», как в Linux в VxWorks, но мне пришлось изменить мою fopen, чтобы вместо этого сказать что-то вроде pFile = fopen("flash:/ngfm.bin","wb");.

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 
}