---
name: "usb_string"
section: "9"
platform: "linux"
package: "linux-manual-4.9"
version: "4.9.228-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/usb_string"
---

# usb\_string(9)

returns UTF-8 version of a string descriptor

## NAME

usb\_string - returns UTF-8 version of a string descriptor

## SYNOPSIS

**int usb\_string(struct usb\_device \*** *dev***, int** *index***, char \*** *buf***, size\_t** *size***);**

## ARGUMENTS

*dev*

the device whose string descriptor is being retrieved

*index*

the number of the descriptor

*buf*

where to put the string

*size*

how big is “buf”?

## CONTEXT

!in\_interrupt ()

## DESCRIPTION

This converts the UTF-16LE encoded strings returned by devices, from **usb\_get\_string\_descriptor**, to null-terminated UTF-8 encoded ones that are more usable in most kernel contexts. Note that this function chooses strings in the first language supported by the device.

This call is synchronous, and may not be used in an interrupt context.

## RETURN

length of the string (\>= 0) or usb\_control\_msg status (\< 0).

## COPYRIGHT
