No you don't have to, whether you consider Linux or Windows. Actually you should not use libusb for this because to use it you need to detach the kernel driver (cdc_atm on Linux in serial mode) and do weird stuff on Windows. This is not what libusb is good for.
There are currently two ways to trigger the soft reboot of a Teensy device, depending on the USB mode it's running:
- in Serial mode, just switch the baud rate to 134 on the serial device, using SetCommState on Win32 or tcsetattr on POSIX systems
- in HID mode, send an HID feature report containing the magic string {0xA9, 0x45, 0xC2, 0x6B} to the device (with a report number of 0)
Of course you have to open the device before you do that. If it's a serial device, on Windows, just find the corresponding COM port. Other cases are more complicated, libusb can help to enumerate devices but last I checked it does not readily expose the device file path.
Should you be interested, I've made a "cross-platform" (no Mac OS X support) library to deal with Teensy devices. You can use it to list and detect Teensy devices dynamically, reboot/program them and communicate serially (for real or using the HID emulation, transparently). It has no external dependency. It's also incomplete and pretty much undocumented but I don't have much (any) time for it at the moment, unfortunately.
https://github.com/Koromix/ty
You can use it directly or simply read it to find how to do this stuff yourself. The code should be simple enough to read but as I said before, it's not documented.