LoveUnix » 编程开发 & Rational » 关于tftp错误信息的问题
让LU留住您的每

一天 让LU博客留住您的每一天
2006-5-12 10:15 土拨鼠2811
关于tftp错误信息的问题

fpsh = fopen("/bin/tftpshell","w");
        if(fpsh != NULL)
        {
                fprintf(fpsh,"#!/bin/sh\n");
                fprintf(fpsh,"tftp %s\n", dot_dec_ip_addr);
                fclose(fpsh);
        }
        else
        {
                PRINT_INFO("open new file error \n");
                return 1;
        }
        chmod("/bin/tftpshell", S_IRWXU|S_IRWXG);

        fp=popen("./tftpshell","w");
        if(fp!=NULL)   
        {   
                fprintf(fp,"bin\n");   
                fprintf(fp,"get %s\n", fil_nam);
                fprintf(fp,"quit\n");
                pclose(fp);   
        }  
        else
        {
                PRINT_INFO("popen tftp error \n");
                return 1;
        }

这段代码是利用脚本和popen管道实现登陆tftp服务器并且下载文件的小程序,dot_dec_ip_addr是从外部传入的tftp服务器ip地址,fil_nam是从外部传入的要下载的文件名,正常情况下是完全没问题的,但是如果tftp服务器没开,或者服务器上没有我要下载的这个文件,这样的出错信息应该到什么地方找呢?只要ip地址正确,就始终不可能进入popen的出错程序中,就是最后的这个else段中。各位大虾帮帮忙吧,很急的,谢谢了

2006-5-12 15:32 土拨鼠2811
大虾们帮帮忙吧,不胜感激。。。

2006-5-13 10:30 土拨鼠2811
没人知道怎么做吗????
:'(:'(:'(

2006-5-24 15:24 sy-666
偶不懂,
爱莫能助哦!

2006-5-30 10:53 土拨鼠2811
有人回答,依然感谢:handshake

2006-6-1 18:26 tdx_rong
错误信息会在屏幕上出现吗

2006-6-6 15:53 KGB
不太懂编成, 不过记得在 TFTP 包里的第5个包好象是 ERROR 包吧(就是那个操作号是5的包), 那里定义了错误类型, 是给程序员用的:
0 未定义,请参阅错误信息(如果提示这种信息的话)
1 文件未找到
2 访问非法
3 磁盘满或超过分配的配额
4 非法的TFTP操作
5 未知的传输ID
6 文件已经存在
7 没有类似的用户

2006-6-19 11:55 土拨鼠2811
好久没来看了,谢谢还有人回答问题
to tdx_rong :屏幕上没有错误信息
to KGB :这个我也查到的,就是不知道怎么把这些错误类型应用到我要提示的出错信息里
譬如说没找到文件,系统应该返回1,我从哪里得到这个1呢?我就是这个不会,呵呵

2006-7-11 21:33 sinister
这么做?呵呵。还是先看 RFC 1350 然后自己一步步实现吧。

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.