running BASH commands from C++

hey guys,

I want to add this bash command to my c++ program.
echo cape-bone-iio > /sys/devices/bone_capemgr.*/slots

i tried this

#include
#include
#include<unistd.h>
using namespace std;
int main() {
system(“echo cape-bone-iio > /sys/devices/bone_capemgr.*/slots”);
return 0;
}

but it does not work.

Can someone help me with this?

Have you verified that the system command does wildcard expansion? (Replace the asterisk in the command by the proper number and verify whether that works) – Bas

well i tried this
system(“echo cape-bone-iio > /sys/devices/bone_capemgr.9/slots”);

still the same

both commands work in the terminal

So you know what to do, now find out how to do it :slight_smile: What is the result from the system() call? – Bas BTW: You can also try writing the proper text directly to the slots file!

im getting nothing… no errors. but it wont write the file either :frowning:
im pretty new to BBB, its just my 5th day of using it… and I did some googling, couldn’t find a solution yet…

im using “echo cape-bone-iio > /sys/devices/bone_capemgr.9/slots” to create the file for ADC. right now i have to execute the bash command manually before i execute the c++ file which I wrote to read ADC values

Btw what is “writing the proper text directly to the slots file” ?? im kinda lost

Have you tried looking at the return status of the "system" call. That may give a clue. Also it may be worth explicitly giving the path for echo:

int status;
status = *system("/bin/echo cape-bone-iio > /sys/devices/bone_capemgr.9/slots");
*printf("status = %d\n", status);

HTH,

Dave.

hey guys,

system("/bin/echo cape-bone-iio > /sys/devices/bone_capemgr.9/slots"); - works
I simply forgot a header file :confused:

` #include //has to be in the code `