unix domain socket 使用时crash
来源:互联网 发布:网络新技术有哪些() 编辑:程序博客网 时间:2024/06/09 21:27
项目中代码质量检查
char my_socket_path[MY_LEN_128];memset(my_socket_path, 0, sizeof(my_socket_path));snprintf(my_socket_path, MY_LEN_128 - 1, "%s", "/var/run/pidno/user/.mysocketpath");strcpy(server_addr.sun_path, my_socket_path);
代码运行没问题,但是提示使用strncpy 替换 strcpy
于是修正代码如下
char my_socket_path[MY_LEN_128];memset(my_socket_path, 0, sizeof(my_socket_path));snprintf(my_socket_path, MY_LEN_128 - 1, "%s", "/var/run/pidno/user/.mysocketpath");strncpy(server_addr.sun_path, my_socket_path, MY_LEN_128 - 1);
结果代码总是crash
一步步调试后,猜测可能sun_path的长度有问题,查找套接字的原始定义
struct sockaddr_un { __SOCKADDR_COMMON (sun_); char sun_path[108]; };
因此,原因肯定是因为我们是128的buffer,拷贝到108的buffer,出现了问题。
修正如下
char my_socket_path[MY_LEN_108];memset(my_socket_path, 0, sizeof(my_socket_path));snprintf(my_socket_path, MY_LEN_108 - 1, "%s", "/var/run/pidno/user/.mysocketpath");strncpy(server_addr.sun_path, my_socket_path, MY_LEN_108 - 1);
最终,问题解决~
阅读全文
0 0
- unix domain socket 使用时crash
- UNIX Domain Socket使用
- UNIX Domain Socket使用
- golang http client使用unix domain socket
- Unix domain socket
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- Unix Domain Socket IPc
- UNIX Domain Socket IPC
- UNIX Domain Socket IPC
- unix domain socket
- unix domain socket介绍
- Unix domain socket
- UNIX Domain Socket IPC
- unix domain socket 本质
- UNIX Domain Socket IPC
- unix domain socket介绍
- UNIX Domain Socket IPC
- 好消息: 《微信商城开发实战》 已经由电子工业出版社出版发行啦
- IntelliJ IDEA缓存和索引(三)
- Linux如何安装PHPMyAdmin
- 启动界面淡入淡出效果
- Spring 框架搭建
- unix domain socket 使用时crash
- html5<canvas图像合成实例之随机闪烁的星星>
- 微信小程序申请开通了流程
- ACPI 启动下platform_driver定义时是否要用of_match_ptr
- Java 8新特性:lambda表达式
- 八大排序算法之插入排序算法
- 微信小程序实例源码大全下载
- (c++)web应用开发框架简单对比
- PorterDuffXfermode学习笔记