C 如何存储系统函数中的字符串

C 如何存储系统函数中的字符串,c,system,C,System,我想知道,当您从系统中调用某个函数时,是否有方法存储系统打印出来的内容,例如,我希望我的程序读取我的Wi-Fi密钥/从控制台输出的所有内容,并将其存储在.txt文件中。这可能吗?如果没有,是否可以从系统打印字符串 以下是打印内容的代码: #include <stdio.h> int main() { system("netsh wlan show profile wifi name key=clear"); return 0; } #包括 int main

我想知道,当您从系统中调用某个函数时,是否有方法存储系统打印出来的内容,例如,我希望我的程序读取我的Wi-Fi密钥/从控制台输出的所有内容,并将其存储在.txt文件中。这可能吗?如果没有,是否可以从系统打印字符串

以下是打印内容的代码:

#include <stdio.h>


int main()
{
    system("netsh wlan show profile wifi name key=clear");



    return 0;
}
#包括
int main()
{
系统(“netsh wlan show profile wifi name key=clear”);
返回0;
}

我用了一种比@Ratul Sharker和@Basile Straynkevitch建议的简单得多的方法来解决这个问题。解决方案是在系统中使用
,但在编译之前必须有一个.txt文件(可能会找到一种方法让程序编写该文件)

代码:

#包括
int main()
{
系统(“netsh wlan show profile wifi name key=clear>C:\\somepath\\name.txt”);
返回0;
}

将输出字符串重定向到文件ptr将完成此操作。谢谢您的建议!在POSIX系统上,您可能想要使用;虽然
系统
是由C标准化的,但命令的执行方式并不是特定于操作系统的。的可能重复看起来像是XY问题。使用一个库来完成实际需要的调用,并直接调用函数。对我来说,使用popen()似乎更优雅,因为它避免了对临时文件的需要,并且不依赖于特定的shell行为。此外,它还避免了加载shell时额外的内存开销。
#include <stdio.h>


int main()
{
    system("netsh wlan show profile wifi name key=clear > C:\\somepath\\name.txt");



    return 0;
}