When we use this function in read_uportable, writing to default_device is actually wrong. We might use device number 2, but default is still the drive letter of device number 1.
So we should handle pointers explicitely, like `get_nth_device(int number, char *device, int device_len)`.