Fix all leak in the examples shown with no device connected
[libftdi] / examples / simple.c
1 /* simple.c
2
3    Simple libftdi usage example
4
5    This program is distributed under the GPL, version 2
6 */
7
8 #include <stdio.h>
9 #include <stdlib.h>
10 #include <ftdi.h>
11
12 int main(void)
13 {
14     int ret;
15     struct ftdi_context ftdic;
16     if (ftdi_init(&ftdic) < 0)
17     {
18         fprintf(stderr, "ftdi_init failed\n");
19         return EXIT_FAILURE;
20     }
21
22     if ((ret = ftdi_usb_open(&ftdic, 0x0403, 0x6001)) < 0)
23     {
24         fprintf(stderr, "unable to open ftdi device: %d (%s)\n", ret, ftdi_get_error_string(&ftdic));
25         ftdi_deinit(&ftdic);
26         return EXIT_FAILURE;
27     }
28
29     // Read out FTDIChip-ID of R type chips
30     if (ftdic.type == TYPE_R)
31     {
32         unsigned int chipid;
33         printf("ftdi_read_chipid: %d\n", ftdi_read_chipid(&ftdic, &chipid));
34         printf("FTDI chipid: %X\n", chipid);
35     }
36
37     if ((ret = ftdi_usb_close(&ftdic)) < 0)
38     {
39         fprintf(stderr, "unable to close ftdi device: %d (%s)\n", ret, ftdi_get_error_string(&ftdic));
40         ftdi_deinit(&ftdic);
41         return EXIT_FAILURE;
42     }
43
44     ftdi_deinit(&ftdic);
45
46     return EXIT_SUCCESS;
47 }