gpt4 book ai didi

c - 将参数传递给 CreateProcess() 在 C 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:03:34 26 4
gpt4 key购买 nike

<分区>

我正在尝试创建一个 shell,允许用户输入“ping”命令并​​使用 CreateProcess() 根据用户输入执行命令。在处理变量时,我遇到了让 ping 命令工作的麻烦。例如,只要我在字符串前面加上 L,下面的代码就可以正常工作。但是,该字符串必须由用户输入给出,因此经过一些研究后,我遇到了一个可能以 wchar_t 变量形式替换 L 类型转换的方法。

if (strcmp(buffer, "ping") == 0 || strcmp(buffer, "ping &") == 0){
LPCTSTR path = L"C:\\Windows\\System32\\PING.exe";
LPTSTR link = L"-t www.yahoo.com";
CreateProcess(path,
link,
NULL,
NULL,
0,
0,
NULL,
NULL,
&start,
&info);
if (strcmp(buffer, "ping") == 0){
WaitForSingleObject(info.hProcess, INFINITE);
}
CloseHandle(info.hProcess);
CloseHandle(info.hThread);

printf("MyShell: ");
scanf("%s", buffer);

如果我进行此更改,它将停止工作(控制台崩溃,无输出)。

        wchar_t wideC = "-t www.yahoo.com";
LPCTSTR path = L"C:\\Windows\\System32\\PING.exe";
LPTSTR link = wideC;

我已经尝试在 CreateProcess() 参数和外部转换不同类型的变量。我不知道还能做什么。我怎样才能让用户 scanf() 进入一个变量,该变量将用作创建进程的参数?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com