我需要在我的c代码中使用以下代码并进行编译。
dd if=/dev/urandom bs=1 count=400 of=/dev/udp/SrcAddress.ai_addr/8000
这是错误
‘dd’ was not declared in this scope
如何在我的c代码中使用此命令?
答案 0 :(得分:2)
你不能那样使用 select title, count(log.path) as views from articles, log where log.path like
'%/articles.slug' group by articles.title order by views desc;
。您的C程序不是终端,只需在代码中编写它们就无法执行shell命令。执行所需操作的一种方法是使用dd
,如下所示。
popen
答案 1 :(得分:0)
您实际想要做的是在C中编写此dd
操作的等效。这看起来像这样。
int send_n_random_bytes_udp(unsigned int n, const struct sockaddr_in *dest)
{
int rng = open("/dev/urandom", O_RDONLY);
if (rng == -1) return -1;
int sk = socket(AF_INET, SOCK_DGRAM);
if (sk == -1) { close(rng); return -1; }
int status = 0;
for (unsigned int i = 0; i < n; i++) {
char byte;
if (read(rng, &byte, 1) != 1 ||
sendto(sk, &byte, 1, 0,
(const struct sockaddr *)dest,
sizeof(struct sockaddr_in)) != 1) {
status = -1;
break;
}
}
close(sk);
close(rng);
return status;
}