Pelo menos no meu sistema Linux de desktop, o errno 2 é ENOENT
, ou seja, nenhum desses arquivos ou diretórios. Você pode descobrir com o comando errno
(embora você provavelmente não tenha isso no telefone).
Isso pode significar que você não tem um / data nesse telefone (o que seria estranho). Meu telefone com root (Galaxy Nexus, jelly Jean 4.2.2) deixa a permissão negada quando tento isso em um shell (não em um programa C, como você parece estar fazendo)
Sugiro ls -ld /data
para começar e talvez também which echo
para ver se algo é diferente lá. Ou possivelmente você não tem uma concha; o system("true")
funciona?