Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
paho-mqtt
10
使用 paho-MQTT时出现pipe_read_fd open failed?
发布于 2022-07-18 16:36:34 浏览:1080
订阅该版
使用mqtt例程时,调试过程出现 ```c \ | / - RT - Thread Operating System / | \ 4.1.0 build Jul 18 2022 16:26:19 2006 - 2022 Copyright by RT-Thread team [I/sal.skt] Socket Abstraction Layer initialize success. [I/at.clnt] AT client(V1.3.1) on device uart0 initialize success. [D/at.dev.esp] network interface device(esp0) set up status Hello RT-Thread! [D/at.dev.esp] esp0 device initialize start. msh />[I/at.dev.esp] esp0 device wifi is connected. [D/at.dev.esp] AT version:1.6.2.0(Apr 13 2018 11:10:59) [D/at.dev.esp] SDK version:2.2.1(6ab97e9) [D/at.dev.esp] compile time:Jun 7 2018 19:34:26 [D/at.dev.esp] Bin version(Wroom 02):1.6.2 [I/at.dev.esp] esp0 device wifi is disconnect. [I/at.dev.esp] esp0 device wifi is connected. msh />[I/at.dev.esp] esp0 device network initialize successfully. msh />mqtt_start [E/mqtt] pipe_read_fd open failed [E/mqtt] Create publish pipe device error. [I/mqtt] MQTT server is disconnected. ``` 求大佬解决?
查看更多
5
个回答
默认排序
按发布时间排序
crystal266
2022-07-18
嵌入式
配置如下图所示。 你的 dfs 组件开启了吗?把你的 rt_config.h 文件放上来看一下怎么配置的?另外 PahoMQTT 软件包的版本是多少?(换成v1.1.0试一下) 使用的是什么主控芯片?我用的 v4.0.2 的内核 + esp8266 AT-latest + PahoMQTT v1.1.0 是没有问题的。 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20220718/84fd001e88a64617c5fd01580d6e188f.png.webp) 错误是在下面这段代码打印的 ```c static struct rt_pipe_device *mqtt_pipe_init(int filds[2]) { char dname[8]; char dev_name[32]; static int pipeno = 0; struct rt_pipe_device *pipe = RT_NULL; rt_snprintf(dname, sizeof(dname), "MQTT%d", pipeno++); pipe = rt_pipe_create(dname, PIPE_BUFSZ); if (pipe == RT_NULL) { LOG_E("create mqtt pipe fail\n"); return RT_NULL; } rt_snprintf(dev_name, sizeof(dev_name), "/dev/%s", dname); filds[0] = open(dev_name, O_RDONLY, 0); if (filds[0] < 0) { LOG_E("pipe_read_fd open failed\n"); return RT_NULL; } filds[1] = open(dev_name, O_WRONLY, 0); if (filds[1] < 0) { close(filds[1]); LOG_E("pipe_write_fd open failed\n"); return RT_NULL; } return pipe; } ```
2345vor
认证专家
2022-07-19
每天都满怀期待i😀
非常感谢你的回答,😝 我开启了dfs,主控芯片采用RA6M4,我用的 v4.1.0的内核 + esp8266 AT-latest + PahoMQTT -latest,AT固件采用https://club.rt-thread.org/ask/question/1c2b90cb7c85db32.html 提供的https://gitee.com/liuduanfei/esp8266-firmware-downloader 下面是我的`rtthread.h` ```cpp #ifndef RT_CONFIG_H__ #define RT_CONFIG_H__ /* Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) */ /* RT-Thread Kernel */ #define RT_NAME_MAX 8 #define RT_ALIGN_SIZE 4 #define RT_THREAD_PRIORITY_32 #define RT_THREAD_PRIORITY_MAX 32 #define RT_TICK_PER_SECOND 1000 #define RT_USING_OVERFLOW_CHECK #define RT_USING_HOOK #define RT_HOOK_USING_FUNC_PTR #define RT_USING_IDLE_HOOK #define RT_IDLE_HOOK_LIST_SIZE 4 #define IDLE_THREAD_STACK_SIZE 256 #define RT_USING_TIMER_SOFT #define RT_TIMER_THREAD_PRIO 4 #define RT_TIMER_THREAD_STACK_SIZE 512 /* kservice optimization */ /* end of kservice optimization */ #define RT_DEBUG #define RT_DEBUG_COLOR /* Inter-Thread communication */ #define RT_USING_SEMAPHORE #define RT_USING_MUTEX #define RT_USING_EVENT #define RT_USING_MAILBOX #define RT_USING_MESSAGEQUEUE /* end of Inter-Thread communication */ /* Memory Management */ #define RT_USING_SMALL_MEM #define RT_USING_SMALL_MEM_AS_HEAP #define RT_USING_HEAP /* end of Memory Management */ /* Kernel Device Object */ #define RT_USING_DEVICE #define RT_USING_CONSOLE #define RT_CONSOLEBUF_SIZE 128 #define RT_CONSOLE_DEVICE_NAME "uart7" /* end of Kernel Device Object */ #define RT_VER_NUM 0x40100 /* end of RT-Thread Kernel */ #define ARCH_ARM #define RT_USING_CPU_FFS #define ARCH_ARM_CORTEX_M #define ARCH_ARM_CORTEX_M4 /* RT-Thread Components */ #define RT_USING_COMPONENTS_INIT #define RT_USING_USER_MAIN #define RT_MAIN_THREAD_STACK_SIZE 2048 #define RT_MAIN_THREAD_PRIORITY 10 #define RT_USING_MSH #define RT_USING_FINSH #define FINSH_USING_MSH #define FINSH_THREAD_NAME "tshell" #define FINSH_THREAD_PRIORITY 20 #define FINSH_THREAD_STACK_SIZE 4096 #define FINSH_USING_HISTORY #define FINSH_HISTORY_LINES 5 #define FINSH_USING_SYMTAB #define FINSH_CMD_SIZE 80 #define MSH_USING_BUILT_IN_COMMANDS #define FINSH_USING_DESCRIPTION #define FINSH_ARG_MAX 10 #define RT_USING_DFS #define DFS_USING_POSIX #define DFS_USING_WORKDIR #define DFS_FILESYSTEMS_MAX 4 #define DFS_FILESYSTEM_TYPES_MAX 4 #define DFS_FD_MAX 16 /* Device Drivers */ #define RT_USING_DEVICE_IPC #define RT_USING_SYSTEM_WORKQUEUE #define RT_SYSTEM_WORKQUEUE_STACKSIZE 2048 #define RT_SYSTEM_WORKQUEUE_PRIORITY 23 #define RT_USING_SERIAL #define RT_USING_SERIAL_V2 #define RT_SERIAL_USING_DMA #define RT_USING_PIN /* Using USB */ /* end of Using USB */ /* end of Device Drivers */ /* C/C++ and POSIX layer */ #define RT_LIBC_DEFAULT_TIMEZONE 8 /* POSIX (Portable Operating System Interface) layer */ #define RT_USING_POSIX_FS #define RT_USING_POSIX_POLL #define RT_USING_POSIX_SELECT #define RT_USING_POSIX_SOCKET /* Interprocess Communication (IPC) */ /* Socket is in the 'Network' category */ /* end of Interprocess Communication (IPC) */ /* end of POSIX (Portable Operating System Interface) layer */ /* end of C/C++ and POSIX layer */ /* Network */ #define RT_USING_SAL #define SAL_INTERNET_CHECK /* protocol stack implement */ #define SAL_USING_AT /* end of protocol stack implement */ #define SAL_USING_POSIX #define RT_USING_NETDEV #define NETDEV_USING_IFCONFIG #define NETDEV_USING_PING #define NETDEV_USING_NETSTAT #define NETDEV_USING_AUTO_DEFAULT #define NETDEV_IPV4 1 #define NETDEV_IPV6 0 #define RT_USING_AT #define AT_DEBUG #define AT_USING_CLIENT #define AT_CLIENT_NUM_MAX 1 #define AT_USING_SOCKET #define AT_USING_CLI #define AT_CMD_MAX_LEN 128 #define AT_SW_VERSION_NUM 0x10301 /* end of Network */ /* Utilities */ /* end of Utilities */ /* end of RT-Thread Components */ /* RT-Thread online packages */ /* IoT - internet of things */ #define PKG_USING_PAHOMQTT #define PAHOMQTT_PIPE_MODE #define PKG_USING_PAHOMQTT_EXAMPLE #define RT_PKG_MQTT_THREAD_STACK_SIZE 4096 #define PKG_PAHOMQTT_SUBSCRIBE_HANDLERS 1 #define MQTT_DEBUG #define PKG_USING_PAHOMQTT_LATEST /* Wi-Fi */ /* Marvell WiFi */ /* end of Marvell WiFi */ /* Wiced WiFi */ /* end of Wiced WiFi */ /* end of Wi-Fi */ #define PKG_USING_AT_DEVICE #define AT_DEVICE_USING_ESP8266 #define AT_DEVICE_ESP8266_SOCKET #define AT_DEVICE_ESP8266_SAMPLE #define ESP8266_SAMPLE_WIFI_SSID "J09 502" #define ESP8266_SAMPLE_WIFI_PASSWORD "qwertyuiop111" #define ESP8266_SAMPLE_CLIENT_NAME "uart0" #define ESP8266_SAMPLE_RECV_BUFF_LEN 512 #define PKG_USING_AT_DEVICE_LATEST_VERSION #define PKG_AT_DEVICE_VER_NUM 0x99999 /* IoT Cloud */ /* end of IoT Cloud */ /* end of IoT - internet of things */ /* security packages */ /* end of security packages */ /* language packages */ /* JSON: JavaScript Object Notation, a lightweight data-interchange format */ #define PKG_USING_CJSON #define PKG_USING_CJSON_LATEST_VERSION /* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */ /* XML: Extensible Markup Language */ /* end of XML: Extensible Markup Language */ /* end of language packages */ /* multimedia packages */ /* LVGL: powerful and easy-to-use embedded GUI library */ /* end of LVGL: powerful and easy-to-use embedded GUI library */ /* u8g2: a monochrome graphic library */ /* end of u8g2: a monochrome graphic library */ /* PainterEngine: A cross-platform graphics application framework written in C language */ /* end of PainterEngine: A cross-platform graphics application framework written in C language */ /* end of multimedia packages */ /* tools packages */ /* end of tools packages */ /* system packages */ /* enhanced kernel services */ /* end of enhanced kernel services */ /* acceleration: Assembly language or algorithmic acceleration packages */ /* end of acceleration: Assembly language or algorithmic acceleration packages */ /* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ /* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ /* Micrium: Micrium software products porting for RT-Thread */ /* end of Micrium: Micrium software products porting for RT-Thread */ /* end of system packages */ /* peripheral libraries and drivers */ /* end of peripheral libraries and drivers */ /* AI packages */ /* end of AI packages */ /* miscellaneous packages */ /* project laboratory */ /* end of project laboratory */ /* samples: kernel and components samples */ /* end of samples: kernel and components samples */ /* entertainment: terminal games and other interesting software packages */ /* end of entertainment: terminal games and other interesting software packages */ /* end of miscellaneous packages */ /* end of RT-Thread online packages */ #define SOC_FAMILY_RENESAS #define SOC_SERIES_R7FA6M4 /* Hardware Drivers Config */ #define SOC_R7FA6M4AF /* Onboard Peripheral Drivers */ /* On-chip Peripheral Drivers */ #define BSP_USING_GPIO #define BSP_USING_UART #define BSP_USING_UART0 #define BSP_UART0_RX_BUFSIZE 256 #define BSP_UART0_TX_BUFSIZE 0 #define BSP_USING_UART7 #define BSP_UART7_RX_BUFSIZE 256 #define BSP_UART7_TX_BUFSIZE 0 /* end of On-chip Peripheral Drivers */ /* Board extended module Drivers */ /* end of Board extended module Drivers */ /* end of Hardware Drivers Config */ #endif ``````cpp #ifndef RT_CONFIG_H__ #define RT_CONFIG_H__ /* Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) */ /* RT-Thread Kernel */ #define RT_NAME_MAX 8 #define RT_ALIGN_SIZE 4 #define RT_THREAD_PRIORITY_32 #define RT_THREAD_PRIORITY_MAX 32 #define RT_TICK_PER_SECOND 1000 #define RT_USING_OVERFLOW_CHECK #define RT_USING_HOOK #define RT_HOOK_USING_FUNC_PTR #define RT_USING_IDLE_HOOK #define RT_IDLE_HOOK_LIST_SIZE 4 #define IDLE_THREAD_STACK_SIZE 256 #define RT_USING_TIMER_SOFT #define RT_TIMER_THREAD_PRIO 4 #define RT_TIMER_THREAD_STACK_SIZE 512 /* kservice optimization */ /* end of kservice optimization */ #define RT_DEBUG #define RT_DEBUG_COLOR /* Inter-Thread communication */ #define RT_USING_SEMAPHORE #define RT_USING_MUTEX #define RT_USING_EVENT #define RT_USING_MAILBOX #define RT_USING_MESSAGEQUEUE /* end of Inter-Thread communication */ /* Memory Management */ #define RT_USING_SMALL_MEM #define RT_USING_SMALL_MEM_AS_HEAP #define RT_USING_HEAP /* end of Memory Management */ /* Kernel Device Object */ #define RT_USING_DEVICE #define RT_USING_CONSOLE #define RT_CONSOLEBUF_SIZE 128 #define RT_CONSOLE_DEVICE_NAME "uart7" /* end of Kernel Device Object */ #define RT_VER_NUM 0x40100 /* end of RT-Thread Kernel */ #define ARCH_ARM #define RT_USING_CPU_FFS #define ARCH_ARM_CORTEX_M #define ARCH_ARM_CORTEX_M4 /* RT-Thread Components */ #define RT_USING_COMPONENTS_INIT #define RT_USING_USER_MAIN #define RT_MAIN_THREAD_STACK_SIZE 2048 #define RT_MAIN_THREAD_PRIORITY 10 #define RT_USING_MSH #define RT_USING_FINSH #define FINSH_USING_MSH #define FINSH_THREAD_NAME "tshell" #define FINSH_THREAD_PRIORITY 20 #define FINSH_THREAD_STACK_SIZE 4096 #define FINSH_USING_HISTORY #define FINSH_HISTORY_LINES 5 #define FINSH_USING_SYMTAB #define FINSH_CMD_SIZE 80 #define MSH_USING_BUILT_IN_COMMANDS #define FINSH_USING_DESCRIPTION #define FINSH_ARG_MAX 10 #define RT_USING_DFS #define DFS_USING_POSIX #define DFS_USING_WORKDIR #define DFS_FILESYSTEMS_MAX 4 #define DFS_FILESYSTEM_TYPES_MAX 4 #define DFS_FD_MAX 16 /* Device Drivers */ #define RT_USING_DEVICE_IPC #define RT_USING_SYSTEM_WORKQUEUE #define RT_SYSTEM_WORKQUEUE_STACKSIZE 2048 #define RT_SYSTEM_WORKQUEUE_PRIORITY 23 #define RT_USING_SERIAL #define RT_USING_SERIAL_V2 #define RT_SERIAL_USING_DMA #define RT_USING_PIN /* Using USB */ /* end of Using USB */ /* end of Device Drivers */ /* C/C++ and POSIX layer */ #define RT_LIBC_DEFAULT_TIMEZONE 8 /* POSIX (Portable Operating System Interface) layer */ #define RT_USING_POSIX_FS #define RT_USING_POSIX_POLL #define RT_USING_POSIX_SELECT #define RT_USING_POSIX_SOCKET /* Interprocess Communication (IPC) */ /* Socket is in the 'Network' category */ /* end of Interprocess Communication (IPC) */ /* end of POSIX (Portable Operating System Interface) layer */ /* end of C/C++ and POSIX layer */ /* Network */ #define RT_USING_SAL #define SAL_INTERNET_CHECK /* protocol stack implement */ #define SAL_USING_AT /* end of protocol stack implement */ #define SAL_USING_POSIX #define RT_USING_NETDEV #define NETDEV_USING_IFCONFIG #define NETDEV_USING_PING #define NETDEV_USING_NETSTAT #define NETDEV_USING_AUTO_DEFAULT #define NETDEV_IPV4 1 #define NETDEV_IPV6 0 #define RT_USING_AT #define AT_DEBUG #define AT_USING_CLIENT #define AT_CLIENT_NUM_MAX 1 #define AT_USING_SOCKET #define AT_USING_CLI #define AT_CMD_MAX_LEN 128 #define AT_SW_VERSION_NUM 0x10301 /* end of Network */ /* Utilities */ /* end of Utilities */ /* end of RT-Thread Components */ /* RT-Thread online packages */ /* IoT - internet of things */ #define PKG_USING_PAHOMQTT #define PAHOMQTT_PIPE_MODE #define PKG_USING_PAHOMQTT_EXAMPLE #define RT_PKG_MQTT_THREAD_STACK_SIZE 4096 #define PKG_PAHOMQTT_SUBSCRIBE_HANDLERS 1 #define MQTT_DEBUG #define PKG_USING_PAHOMQTT_LATEST /* Wi-Fi */ /* Marvell WiFi */ /* end of Marvell WiFi */ /* Wiced WiFi */ /* end of Wiced WiFi */ /* end of Wi-Fi */ #define PKG_USING_AT_DEVICE #define AT_DEVICE_USING_ESP8266 #define AT_DEVICE_ESP8266_SOCKET #define AT_DEVICE_ESP8266_SAMPLE #define ESP8266_SAMPLE_WIFI_SSID "J09 502" #define ESP8266_SAMPLE_WIFI_PASSWORD "qwertyuiop111" #define ESP8266_SAMPLE_CLIENT_NAME "uart0" #define ESP8266_SAMPLE_RECV_BUFF_LEN 512 #define PKG_USING_AT_DEVICE_LATEST_VERSION #define PKG_AT_DEVICE_VER_NUM 0x99999 /* IoT Cloud */ /* end of IoT Cloud */ /* end of IoT - internet of things */ /* security packages */ /* end of security packages */ /* language packages */ /* JSON: JavaScript Object Notation, a lightweight data-interchange format */ #define PKG_USING_CJSON #define PKG_USING_CJSON_LATEST_VERSION /* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */ /* XML: Extensible Markup Language */ /* end of XML: Extensible Markup Language */ /* end of language packages */ /* multimedia packages */ /* LVGL: powerful and easy-to-use embedded GUI library */ /* end of LVGL: powerful and easy-to-use embedded GUI library */ /* u8g2: a monochrome graphic library */ /* end of u8g2: a monochrome graphic library */ /* PainterEngine: A cross-platform graphics application framework written in C language */ /* end of PainterEngine: A cross-platform graphics application framework written in C language */ /* end of multimedia packages */ /* tools packages */ /* end of tools packages */ /* system packages */ /* enhanced kernel services */ /* end of enhanced kernel services */ /* acceleration: Assembly language or algorithmic acceleration packages */ /* end of acceleration: Assembly language or algorithmic acceleration packages */ /* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ /* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ /* Micrium: Micrium software products porting for RT-Thread */ /* end of Micrium: Micrium software products porting for RT-Thread */ /* end of system packages */ /* peripheral libraries and drivers */ /* end of peripheral libraries and drivers */ /* AI packages */ /* end of AI packages */ /* miscellaneous packages */ /* project laboratory */ /* end of project laboratory */ /* samples: kernel and components samples */ /* end of samples: kernel and components samples */ /* entertainment: terminal games and other interesting software packages */ /* end of entertainment: terminal games and other interesting software packages */ /* end of miscellaneous packages */ /* end of RT-Thread online packages */ #define SOC_FAMILY_RENESAS #define SOC_SERIES_R7FA6M4 /* Hardware Drivers Config */ #define SOC_R7FA6M4AF /* Onboard Peripheral Drivers */ /* On-chip Peripheral Drivers */ #define BSP_USING_GPIO #define BSP_USING_UART #define BSP_USING_UART0 #define BSP_UART0_RX_BUFSIZE 256 #define BSP_UART0_TX_BUFSIZE 0 #define BSP_USING_UART7 #define BSP_UART7_RX_BUFSIZE 256 #define BSP_UART7_TX_BUFSIZE 0 /* end of On-chip Peripheral Drivers */ /* Board extended module Drivers */ /* end of Board extended module Drivers */ /* end of Hardware Drivers Config */ #endif ```
出出啊
2022-07-19
恃人不如自恃,人之为己者不如己之自为也
打开 MQTT 设备文件失败,说明 MQTT 没初始化完成,没创建 dev 设备 可以单步进open看一下,应该是没有 dev 设备文件返回了
Rb君
认证专家
2022-08-25
这家伙很懒,什么也没写!
我调试了一下,发现这个问题是没有使能 DFS->对设备使用 devfs 导致的,使能该功能即可成功创建dev设备 ![dfs.png](https://oss-club.rt-thread.org/uploads/20220825/3f960eb1f45bf276baf178cf29abf3ff.png "dfs.png")
Lemontra
2024-08-20
这家伙很懒,什么也没写!
发现是内存不够的问题,用rt_thread_create函数的时候,把别的线程栈大小stack size填小一些,mqtt可能比较吃资源,这样就可以运行了。我是从1024减到512就可以运行了。 ![1724167973758.jpg](https://oss-club.rt-thread.org/uploads/20240820/8062880bf33fa2f2f27ccfb940ab9b37.jpg)
撰写答案
登录
注册新账号
关注者
0
被浏览
1.1k
关于作者
2345vor
每天都满怀期待i😀
提问
1
回答
2
被采纳
0
关注TA
发私信
相关问题
1
esp8266用paho-mqtt出现溢出
2
开了其他线程paho_mqtt就出错,不开其他的就正常
3
paho-mqtt心跳间隔太快
4
mqtt hard fault on thread: mqtt0
5
paho-mqtt 出现错误
6
paho-mqtt 软件包支持Qos 2吗?有没有好的mqtt软件包推荐?
7
pahomqtt 发送数据频率过快导致多个组件出现问题
8
paho-mqtt遇到mqtt0的错误,出错在MQTTstrlen函数
9
添加Paho MQTT的SAMPLE文件报错
10
移植freemodbus主机和pahomqtt,如何组织线程
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
2
RT-Thread EtherKit开源以太网硬件正式发布
3
如何在master上的BSP中添加配置yml文件
4
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
5
RT-Thread 发布 EtherKit开源以太网硬件!
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
MicroPython
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
16
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
6
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
5
次点赞
RTT_逍遥
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部