sudo apt-get install pv
dd if = ubuntu-14.04.3-desktop-i386.iso | pv | sudo dd of = / dev / sda1
Это покажет вам текущую скорость, а также общий объем передачи для dd
. Вы можете указать размер файла и получить расчетное время прибытия и процент завершения, например, используя pv -s 700m
.
Вам нужно разделить свои аргументы так же, как это сделала бы оболочка:
#include <unistd.h>
int main() {
char *args[10];
int i = 0;
args[i++] = "/usr/sbin/iptables";
args[i++] = "-I";
args[i++] = "INPUT";
args[i++] = "-p";
args[i++] = "tcp";
args[i++] = "--dport";
args[i++] = "80";
args[i++] = "-j";
args[i++] = "ACCEPT";
args[i++] = NULL;
execve(args[0], args, NULL);
}
Оболочка разбивается на все пространства.
Флаги и их аргументы должны быть отдельными:
int main() {
char *args[] = {
"/usr/sbin/iptables",
"-I", "INPUT",
"-ptcp",
"--dport", "80",
"-j", "ACCEPT",
NULL
};
...
}
Для команд, в которых опция и аргумент опции могут быть заданы как один аргумент, между ними не должно быть пробела (, например, tail
и -n6
), или должен быть разделитель, например =
, в зависимости от по команде, например grep
и --color=always
.