C语言不使用libcurl调用curl命令编译报错原因求解
问题解答
报错根因
- C语言语法明确规定,全局作用域下的变量初始化只能使用编译期可确定的常量值,你现在直接把
system()函数的返回值用来初始化全局变量status,而system()是运行时才会执行的函数,它的返回值要等程序运行后才能得到,不属于编译期常量,完全不符合语法要求,因此触发编译报错。
修复方案
把变量定义和system()调用逻辑移到main函数内部即可,修改后可用的代码示例如下:
#include <stdlib.h> int main(void) { int status = system("curl -X GET \"https://dex.binance.org/api/v1/klines?symbol=&interval=&limit=&startTime=&endTime=\""); // 可在此处添加对status的判断逻辑,确认curl命令是否执行成功 return 0; }
如果后续需要获取curl请求返回的接口数据,而不仅仅是命令执行的状态码,可以改用popen函数读取curl命令的标准输出内容。
内容的提问来源于stack exchange,提问作者armanvanlendel
相关产品推荐
相关产品推荐

