0

パスのプレースホルダー値 (int 型) を設定したい:

/sys/class/gpio/gpio%d/value => /sys/class/gpio/gpio33/value

挿入される値は最大 99 で最小 1 です。パスに空の文字を入れたくないので、バッファ サイズを自動的に決定したいと考えています。

これが、残念ながら文字列に対してこれを行うasprintf()を考えた理由です。これは整数では機能しません。

#define GPIO_PATH_VALUE "/sys/class/gpio/gpio%d/value"

char * path;

asprintf(path, GPIO_PATH_VALUE, 4);
asprintf(path, GPIO_PATH_VALUE, 67);

整数で動作するasprintf()に似た関数はありますか?

ボードー

4

2 に答える 2

2

asPrintf()これを試してみてください。これをchar **参照してください http://linux.die.net/man/3/asprintf

#define GPIO_PATH_VALUE "/sys/class/gpio/gpio%d/value"

char * path;

asprintf(&path, GPIO_PATH_VALUE, 4);
asprintf(&path, GPIO_PATH_VALUE, 67);

関数内で malloc() を行う場合と同様asPrintf()に、この関数ではpathmalloc されたメモリ アドレスを指していないため、アドレスを送信しpathて をasPrintf()変更しpath、それが malloc されたアドレスを指すようにする必要があります。

于 2013-06-18T09:09:09.790 に答える