c - system() 函数的参数?

标签 c linux system system-calls

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

我想这样做是因为我有一些 jpg 文件,这些文件通常命名为 1.jpg 、 2.jpg ... 17.jpg ... 等等。 程序会分配将随机选择的值赋给一个整数变量,并使用 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
}   

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

有没有办法做到这一点,如果没有,我还能怎样做我上面描述的事情?

最佳答案

使用 snprintf 构建您的字符串并将其传递给 system

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

关于c - system() 函数的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10105644/

相关文章:

linux - 将 netdiscover 与修改后的屏幕 View 参数一起使用

linux - 从 wifi 访问以太网 ip

c - SIGKILL 后如何进行清理?

c - 这个指针代码在 64 位计算机上是否合法

c - 如何检测我是否是第一个实例或向同一应用程序的前一个实例发送 IPC 消息?

c - 使用 bfd 从跟踪中恢复位置信息

在不使用 strcmp 的情况下比较 C 中两个二维数组的元素

java - 临时文件夹被创建为临时文件

windows - Powershell 打开系统控制面板而不是执行代码

c++ - 在 C++ 中使用变量作为 system() 输入而不使用 c_str()