Mac上的C:尝试使用“打开”实际上并不会打开url
我正在阅读Head First C的第10章,我来到了这个程序,它应该阅读我搜索词的RSS提要,然后打开每个词的URL。这本书对它让我编写的open_url函数的工作原理有点模糊,但从“open”的手册页上可以看出,我认为它应该在Safari或我的默认浏览器中打开。唯一的问题是,什么也没发生。这段代码编译得很漂亮,运行起来没有任何问题,只是当我使用我知道应该返回什么的搜索词时,它也不会打开网页。当我甚至没有任何错误发生时,我该如何开始对这样的事情进行故障排除Mac上的C:尝试使用“打开”实际上并不会打开url,c,C,我正在阅读Head First C的第10章,我来到了这个程序,它应该阅读我搜索词的RSS提要,然后打开每个词的URL。这本书对它让我编写的open_url函数的工作原理有点模糊,但从“open”的手册页上可以看出,我认为它应该在Safari或我的默认浏览器中打开。唯一的问题是,什么也没发生。这段代码编译得很漂亮,运行起来没有任何问题,只是当我使用我知道应该返回什么的搜索词时,它也不会打开网页。当我甚至没有任何错误发生时,我该如何开始对这样的事情进行故障排除 void open_url(char
void open_url(char *url)
{
char launch[255];
sprintf(launch, "open '%s'", url);
system(launch);
}
int main(int argc, char *argv[])
{
char *phrase = argv[1];
char *vars[] = {"RSS_FEED=https://www.npr.org/rss/podcast.php?id=510298", NULL};
...
char line[255];
while (fgets(line, 255, stdin)){
if (line[0] == '\t')
open_url(line + 1);
}
return 0;
}
在我的Mac电脑上,这个MCVE在已经运行的默认浏览器Firefox的新选项卡中打开Google主搜索页面
#include <stdio.h>
#include <stdlib.h>
static void open_url(const char *url)
{
char launch[255];
snprintf(launch, sizeof(launch), "open '%s'", url);
system(launch);
}
int main(void)
{
open_url("https://www.google.com/");
return 0;
}
删除URL中的行尾。请参阅。特别是,您的代码不是最小的。举个简单的例子,main的内容应该是一行,例如open_urlhttps://www.google.com;当您在open_url函数中收到url时,请尝试打印该url。看看它是否是一个有效的url。你应该首先测试它是否会打开页面,看看你的URL是否有任何错误。谢谢你指出格式,我已经编辑了这篇文章。您的代码可以正常工作并且很有帮助,在尝试让它在我的原始代码中工作时,它让我意识到从RSS提要中提取的python脚本出了问题——它似乎在提取标题,而不是URL,这就是为什么什么都没有发生的原因。我得先把它修好。
line[strcspn(line, "\r\n")] = '\0';