gpt4 book ai didi

在不知道缓冲区大小的情况下将整数转换为字符串

转载 作者:太空宇宙 更新时间:2023-11-04 06:33:58 25 4
gpt4 key购买 nike

我想设置一个路径的占位符值(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() 的函数可以处理整数?

博多

最佳答案

试试这个 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);

由于asPrintf()在函数内部做malloc(),在这个函数中path不会指向分配的内存地址,所以你需要发送的地址path 以便 asPrintf() 更改 path 并将指向 malloced 地址。

关于在不知道缓冲区大小的情况下将整数转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17164654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com