我们假设我从主机Linux系统交叉编译ARM代码:
#include <stdio.h>
#include <unistd.h>
#include <dirent.h>
int main (void) {
return execl ("/bin/echo", "echo", NULL);
}
我有二进制echoFromC
问题出现在我的目标上,这个二进制文件将运行,没有/ bin,/ usr等。所以它不会执行命令。
所以我希望最后的二进制文件应该包含执行所需的所有内容&#34; echo&#34;。它不要寻找/ bin / echo(因为它不存在)。
我该怎么做?
其实我必须实施:
bash> echo 240 > /sys/class/gpio/export
bash> echo out > /sys/class/gpio/gpio240/direction
bash> echo 1 > /sys/class/gpio/gpio240/value
在c程序中
答案 0 :(得分:2)
您可以在C中实现这些echo
函数,例如实现echo 240 > /sys/class/gpio/export
,您可以执行类似
FILE *fh;
fh = open("/sys/class/gpio/export", "w+");
if (fh == NULL) { /* fopen failed */ }
fwrite("240\n", 1, 4, fh);
fclose(fh);