标签: exec

使用 execve 时传递整数参数

我是使用 C 中的系统调用进行编程的初学者。我正在尝试在我的一个程序中使用 execve 调用。我必须将一个整数作为参数传递给通过 execve 调用的程序。然而,在互联网上阅读并查看示例代码,我可以看到我们只能传递字符串作为参数。因此,我尝试使用“sprintf”将整数转换为字符串,然后使用“strcpy”将该字符串复制到必须通过 execve 传递的字符串数组的元素之一中。但使用 strcpy 会导致分段错误。我通过调试检查了这一点,如果我不使用 strcpy 而只是编写类似 - myargv[1]="123"; 的内容,那么整个程序就可以正常运行了。但由于我必须传递一个可变整数作为参数而不是常量,因此我无法使用上述方法。

这个问题已经困扰我一段时间了。请帮我看看我应该做什么。

c integer arguments exec

1
推荐指数
1
解决办法
7141
查看次数

在 JAVA 中运行 Shell 或系统命令

private void myFunction(String userName){
    String fileName = this.generateFile(userName);
    String[] command = new String[4];
    command[0] = "cmd";
    command[1] = "/C";
    command[2] = "dir";
    command[3] = "7za a "+ userName+".7z  "+ fileName +" -p"+this.password;
    try {  
        Process p = Runtime.getRuntime().exec(command);
        BufferedReader stdInput = new BufferedReader(new
        InputStreamReader(p.getInputStream()));

        BufferedReader stdError = new BufferedReader(new
        InputStreamReader(p.getErrorStream()));

        while ((s = stdError.readLine()) != null) {
        System.out.println(s);
        }

        ProcessBuilder proc = new ProcessBuilder(command[3]);
        proc.start();
    } catch(Exception e) {  
        System.out.println(e.toString());  
        e.printStackTrace();  
    }  
}
Run Code Online (Sandbox Code Playgroud)

我尝试了两种在JAVA中运行命令行的方式。他们都没有工作。谁能告诉我我做错了什么。我尝试了 3 个小时但没有成功:(

我不断收到此错误 File Not Found …

java shell runtime exec ioexception

1
推荐指数
1
解决办法
3万
查看次数

当从命令行调用时,通过 exec 的 PHP SSH 连接可以工作,但不能通过 apache 调用

我的情况类似于PHP shell_exec 使用 ssh 运行 shellscript,但不一样。

情况:我在两台服务器之间交换了 ssh 密钥,切换到www-data用户并通过 SSH 连接到第二台服务器,无需密码。

测试 1:ssh user@10.8.0.6 Documents/run.sh list 在 shell 中执行时工作正常

测试 2:将简单的 PHP Exec 放入 PHP 文件中效果很好。它返回一个数组并且Retval为0

测试 3:将 exec 放入“大”PHP 脚本中并调用它会导致 Retval 255(致命错误?!?!?)

所以目前我真的不明白为什么它不起作用。我试图找出有关 retval 255 的更多详细信息,但没有走得太远。

PHP5 与 PHP5 cli 之间的差异一定存在于某个地方。但在我不得不使用 OpenVPN 之前,它通过正常的 Apache 调用也可以正常工作。

php ssh exec

1
推荐指数
1
解决办法
5442
查看次数

UNIX:xargs 和 exec 的区别

"rGEO"我尝试使用以下命令在目录中搜索字符串:

find . -name "*" -type f -print | xargs grep "rGEO" 
./home/oper1/AgencyTape/geo/exe/gngeo.cmd:${WEB_DIR}/exe/web_reports.sh -aGN -d${prev_ccyy}${prev_mm} -rGEO -nomail
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我返回具有匹配行的文件名,以及与上述字符串匹配的行。

find . -name "*" -type f -exec grep "rGEO" {} \;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我返回:

${WEB_DIR}/exe/web_reports.sh -aGN -d${prev_ccyy}${prev_mm} -rGEO -nomail
Run Code Online (Sandbox Code Playgroud)

包含该行的文件不会被打印 - 并且,正如您所看到的,两个输出之间存在很大差异。

使用xargs可以提供更清晰、更精确的输出。

我的问题是:这两个命令有什么区别?对我来说,他们似乎执行相同的逻辑,但得到不同的结果。

exec xargs

1
推荐指数
1
解决办法
8057
查看次数

C++ 中的 Fork() 和 Execl(),Execl() 失败

我试图在 C++ 中运行 execl(),但它失败了,我不知道为什么。

  string fileName = "test.txt";
  string computerName = "jssoile@palmetto.school.edu";
  pid_t pid;
  int    status;

  if ((pid = fork()) < 0) {     /* fork a child process           */
     printf("*** ERROR: forking child process failed\n");
     exit(1);
  }
  else if (pid == 0) {          /* for the child process:         */
     if (execl("scp", fileName.c_str(), computerName.c_str(), NULL) < 0) {     /* execute the command  */
        printf("*** ERROR: exec failed\n");
        exit(1);
     }
  }
  else {                                /* for the parent:      */
     while (wait(&status) != pid) …
Run Code Online (Sandbox Code Playgroud)

c++ string fork character exec

1
推荐指数
1
解决办法
3078
查看次数

PHP Net_SSH2 - exec() 如何获取命令返回码

如何获取已执行命令的返回码:

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->exec('cat /tmp/file_tmp');
//verify the return code
echo $ssh->exec('echo $?');

?>
Run Code Online (Sandbox Code Playgroud)

echo $?(Linux) 和echo %errorlevel%(Win) 不起作用。

有任何想法吗??

php ssh exec phpseclib

1
推荐指数
1
解决办法
5186
查看次数

node js:我要获取(子)exec 的输出并设置要重新调整的变量?

我一直在寻找一个真正的例子,但我找不到任何例子。我对 node js 完全陌生。

我正在设置一个使用命令行工具获取密码的服务。

命令行“pw get key”返回与密钥关联的密码。命令行“pw set key password”设置与密钥关联的密码。

到目前为止,我拥有的部分代码是:

const util = require('util');
const exec = util.promisify(require('child_process').exec);

async function cmdPwGet(key) {
  const { stdout, stderr } = await exec(`pw get ${key}`);
  console.log('stdout:', stdout); 
  console.log('stderr:', stderr);
}

async function cmdPwPut(key, passwd) {
  const { stdout, stderr } = await exec(`pw set ${key} ${passwd}`);
  console.log('stdout:', stdout);
  console.log('stderr:', stderr);
}

class PwService {

    constructor (KEY){
    this.basekey = KEY;
    this.pwd = "";
    }

    setPw (key, passwd) {
      key = this.basekey + …
Run Code Online (Sandbox Code Playgroud)

testing command-line exec node.js testcafe

1
推荐指数
1
解决办法
909
查看次数

如何从 Flutter 桌面应用程序打开 CMD

我有这个应用程序的想法,但它在很大程度上取决于 CMD,所以我想知道我是否可以从 Flutter 桌面应用程序中打开任何其他应用程序(例如 CMD)。

我知道在 Java 中它可以使用 exec() 来完成,但是在 dart/flutter 中它有什么等价物吗?

cmd exec dart flutter

1
推荐指数
1
解决办法
851
查看次数

在系统上查找某些文件并在父目录 bash 中执行命令

我需要找到包含名为“thisfile”的文件的所有目录。找到文件后,我需要在包含文件的每个目录中执行某个命令。例如:查找包含“thisfile”的目录并列出每个目录中包含的所有文件。我正在尝试:find . -name "thisfile",然后我正在考虑将 cd 放入每个文件夹并执行命令,但我无法实现这一点。例如类似的东西find . -name "thisfile" -exec dirname && cd into those folders && ls"

bash shell cd exec find

1
推荐指数
1
解决办法
37
查看次数

Golang exec命令chmod返回错误

在这里熟悉 Golang,我正在尝试执行 shell 命令,我需要对任何 .pem 文件进行 chmod,所以我决定使用通配符 *

func main() {

    cmd := exec.Command( "chmod", "400", "*.pem" )

    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stdout

    if err := cmd.Run(); err != nil {
        fmt.Println( "Error:", err )
    }
Run Code Online (Sandbox Code Playgroud)

我在执行时不断收到此错误:

chmod: cannot access '*.pem': No such file or directory
Error: exit status 1
Run Code Online (Sandbox Code Playgroud)

shell wildcard exec go

1
推荐指数
1
解决办法
50
查看次数

标签 统计

exec ×10

shell ×3

php ×2

ssh ×2

arguments ×1

bash ×1

c ×1

c++ ×1

cd ×1

character ×1

cmd ×1

command-line ×1

dart ×1

find ×1

flutter ×1

fork ×1

go ×1

integer ×1

ioexception ×1

java ×1

node.js ×1

phpseclib ×1

runtime ×1

string ×1

testcafe ×1

testing ×1

wildcard ×1

xargs ×1