参数为system()func?

J3y*_*f3R 0 c linux system system-calls

我想将一个整数作为参数发送到system()C中的函数,但我无法做到.

我想这样做是因为我有一些常规命名的jpg文件1.jpg , 2.jpg ... 17.jpg ... ect..程序会将一个随机选择的值分配给一个整数变量,并使用该system()函数打开与随机选择的整数同名的图像文件.

我想象的是:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main()
{
    srand(time(NULL));
    i=rand()%30+1; // for example i=17
    system("eog %d.jpg &",i);  //and i want to open 17.jpg here with eog
}   
Run Code Online (Sandbox Code Playgroud)

我知道system()上面的函数有太多的论据; 我只是想举一个我想要的例子.

有没有办法做到这一点,如果没有,我怎么能去做我上面描述的?

cni*_*tar 5

使用snprintf建立自己的字符串,并传递给system.

char cmd[LEN];
snprintf(cmd, sizeof(cmd), "eog %d.jpg &", i);
system(cmd);
Run Code Online (Sandbox Code Playgroud)