TFTP Client Example

Eric Norum eric.norum at
Thu Apr 19 14:31:05 UTC 2001

Gerke Kok wrote:
> I think you could have a look at the tftp client in the 'etherboot' project.
> I use it myself in a bootloader program. It only requires you to have
> ether_read and ether_write functions. You can easily port it to RTEMS I
> think.
> wkr,
> Gerke

Yes, but RTEMS already has a TFTP `network file system' driver which
makes access to files on a TFTP server almost the same as access to any
other file.  Usage is very simple:
    1) After initializing the network, register the TFTP driver:
        rtems_bsdnet_initialize_network ();
        rtems_bsdnet_initialize_tftp_filesystem ();

    2) Remote files are opened by prepending /TFTP/server_address/ to
the paths:
         open ("/TFTP/128.233.xx.yy/path/name', 0);
         fopen ("/TFTP/128.233.xx.yy/path/name', "r");

    3) Then just read/fread/getc as for any other file.
        No seek operations, though.
        A file can be open for reading or writing, but not both.
        Opening a file for writing must meet the TFTP restrictions
(already exist on server, world writeable).

    The above calls will open /tftpboot/path/name on my TFTP server,
since the TFTP daemon has been started with:
        /usr/sbin/in.tftpd -s /tftpboot
Eric Norum                                 eric.norum at
Department of Electrical Engineering       Phone: (306) 966-5394
University of Saskatchewan                 FAX:   (306) 966-5407
Saskatoon, Canada.

More information about the users mailing list