【发布时间】:2012-08-21 05:43:15
【问题描述】:
我想从 C 程序中执行以下命令:
amixer --quiet set Master 5+
amixer --quiet set Master 6-
这里,5 和 6 不是固定值。它们是代码的输入参数,可以有不同的值。
谁能指导我如何实现这一目标?
【问题讨论】:
-
你尝试了什么,为什么没有成功?
我想从 C 程序中执行以下命令:
amixer --quiet set Master 5+
amixer --quiet set Master 6-
这里,5 和 6 不是固定值。它们是代码的输入参数,可以有不同的值。
谁能指导我如何实现这一目标?
【问题讨论】:
你试过了吗:
system("amixer --quiet set Master 5+");
system("amixer --quiet set Master 6-");
【讨论】:
sprintf你想要的命令,然后用这个缓冲区调用system。
以下代码可以实现:
#include <stdio.h>
#include <stdlib.h> /* For system() */
#define SIZE 28
int main()
{
char action;
unsigned int level;
char CommandString[SIZE];
printf ("\nTo Increase\\Decrease volume press 'i'/'d': ");
scanf ("%c", &action);
if (action!='i'&& action !='d')
{
printf ("\nInvalid Choice, please try again\n");
main();
}
printf ("\nEnter Voice Change Level: ");
scanf ("%u", &level);
if (action=='i')
{
printf ("\nIncreasing Voice level by: %u\n", level);
sprintf (CommandString, "amixer --quiet set Master %d+", level);
}
else
{
printf ("\nDecreasing Voice level by: %u\n", level);
sprintf (CommandString, "amixer --quiet set Master %d-", level);
}
system (CommandString);
return 0;
}
【讨论】: