Fix all leak in the examples shown with no device connected
[libftdi] / examples / simple.c
... / ...
CommitLineData
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
12int 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}