POpen适用于字符串,但不能使用变量

cxzp

我可以使以下工作正常:

fp = popen("curl http://192.168.0.144:8000/adder?wsdl", "r");

但是当我这样尝试时:

char* cmd;
strcpy(cmd, "curl http://");
strcat(cmd, qrdata->ip_addr);
strcat(cmd, ":8000/adder?wsdl");

fp = popen(cmd, "r");

发生分段错误。

ALK

您缺少将内存分配给的信息char * cmd

如果使用gcc,则可以根据asprintf()需要分配尽可能多的缓冲区,以将格式化的字符串打印到:

#define _GNU_SOURCE
#include <stdio.h>

...

char * cmd = NULL;
asprintf(&cmd, "curl http://%s:8000/adder?wsdl", qrdata->ip_addr);

/* Use cmd. */

free(cmd);

注意:上面的示例假定qrdata->ip_addr是-0终止的字符数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript适用于硬编码字符串,但不适用于变量

函数调用适用于字符串文字,但不适用于字符串变量C

使用sed在特定字符串之后添加一行,不能使其适用于涉及'(/ etc

lodash ._find虽然是字符串,但不适用于某些变量

指针的内存分配适用于固定变量分配的字符串,但不适用于用户输入字符串

如何用|分割字符串 但不能使用\\ |

将字符串转换为日期时间仅适用于选择但不能更新(T-SQL)

substringWithRange适用于硬编码字符串,但不适用于用户输入的字符串

程序适用于字符串文字,但不适用于字符串数组

子字符串函数不适用于变量

Angular 指令 ng-model 适用于数组但不适用于字符串

Nest Elasticsearch 通配符查询用作查询字符串,但不适用于 fluent API

字符串太长不能使用?

存在Kotlin字符串,但不能使用几乎所有的字符串功能

python子进程运行适用于单个字符串,但不适用于字符串列表

选择字符串不适用于使用输出字符串的管道对象

对父类使用继承,该父类包含仅适用于子类的变量的空字符串

SAS Retain 不适用于 1 个字符串变量

“输入”不适用于检查字符串是否在变量内?

布尔变量设置为 true 不适用于字符串比较

在字符串中查找完全匹配的正则表达式适用于其他地方,但不适用于 MySql 查询

将列表中的所有字符串转换为float。适用于单个列表,但不适用于数据框

C字符串作为模板非类型参数可在gcc 6.3中使用,但不适用于Visual Studio 2017(x64为19.16.27027.1)

在单个字符串上拆分字符串有效,但不适用于熊猫中的一系列字符串

适用于字符字符串的别名规则

字符串操作不适用于特殊字符

字符串匹配不适用于特殊字符“ /”

为什么在创建const字符串变量时不能使用String.Empty?

为什么我不能使用 append() 向字符串添加变量?