【发布时间】:2013-05-02 18:34:54
【问题描述】:
这是我的程序,它似乎不起作用。有时我认为它可以使用\0 或\r 而不是\n,但我想这是因为我已经在运行该程序的终端上执行了 sudo 命令,所以它没有提示我输入密码.
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
FILE* pipe = popen("sudo -S ls", "w");
pwrite(pipe,"mypass\n");
pclose(pipe);
return 0;
}
我哪里错了?我该如何解决?谢谢。
【问题讨论】:
-
我想
sudo测试它是否在 TTY 上运行,如果不是,它将拒绝工作。 -
您可以查看当前进程是否以root身份运行,如果没有提示用户使用
sudo而不是这个。 -
感谢@KerrekSB 和尼克,提供一些指导。真的很感激。设法找到解决方法,在下面回答。
标签: c pipe sudo file-handling