major4x
major4x

Reputation: 442

Why Does `libusb_bulk_transfer' Return 0?

I am using libusb-1.0. Sometimes when I call:

    int rc = libusb_bulk_transfer(handle_,
                                  EP_IN_ADDR,
                                  (unsigned char *)buf_,
                                  64,
                                  &read_,
                                  0);

it returns rc = 0 (no error) and read_ = 0 (zero number of bytes received). But I have specified infinite timeout (last argument), so isn't `libusb_bulk_transfer' supposed to block until I have some data?

Upvotes: 3

Views: 1097

Answers (1)

Turbo J
Turbo J

Reputation: 7691

Sometimes, it returns rc = 0 (no error) and read_ == 0 (zero number of bytes received).

A bulk endpoint can send you packets with zero bytes of data, called zero packets. This is not an error condition.

Upvotes: 1

Related Questions