代码执行sudo -S命令不成功的问题

C++写的程序 想要使用sodu创建一个文件:

system("echo 密码 | sudo -S touch /opt/testfile");

这一句话在我的机器上运行是可以的(双击可执行程序),但拿到别的linux系统(中标麒麟)上,双击可执行程序就没有创建文件,用QProcess也不行,
把这句话写成脚本,在程序中把参数传给脚本运行也不行

但是在终端运行这个命令是可以的, 在终端运行这个可执行程序也可以.
就是图形界面下双击运行不成功
有没有朋友遇到过这样的问题?
有什么解决方法??

图形界面下,双击有没有出现输入密码的对话框。

额,我在centos下面,终端上面可以执行成功,文件夹里面双击没有反应,话说linux下面可以双击执行程序么?

linux图形界面下可以双击执行,当然看起来跟没反应似的(因为没有创建窗口)。
我这里是可以执行的,估计跟sudo的配置有关系?

“把这句话写成脚本,在程序中把参数传给脚本运行也不行”,具体是什么情况?