Estou trabalhando com RPC e um de suas chamada exige o comando df (partições) no servidor, a primeiro instante pensei em utilizar a função system(), mas estudando a respeito percebi pelo relato de outros usuários que existem um método mais eficaz para fazer tais chamada à shell, são as função criação de processo fork() e e execução exec*(). Para portar então isso esbarrei no seguinte problema, o meu system usa operadores de redirecionamento da shell (>), pois preciso gravar a saída do df em um arquivo.
<code> system("df -h > logDF"); </code>
Pelo outro método até consigo executar a instrução df pelo novo processo, porém o problema é para fazer o redirecionamento para algum arquivo, e isso é extremamente necessário à minha aplicação, pois necessito retornar esse valor (via RPC) para o cliente em questão.
Esta ai o código para executar o df, falta-me um modo para redirecionar o mesmo.
<code>
pid_t process = fork();
if (process == 0) { // conseguiu criar novo processo filho
execl("/bin/df", "-h", (char*)0);
}
</code>
obs: Já tentei colocar o "> logDF" como parâmetro, porém não funciona.
Bom, se alguém de vocês já tenham mechido com isso ou sabem o que devo procurar para fazer tal procedimento..
Pergunta
spym4n
Boa tarde amigos do fórum,
Estou trabalhando com RPC e um de suas chamada exige o comando df (partições) no servidor, a primeiro instante pensei em utilizar a função system(), mas estudando a respeito percebi pelo relato de outros usuários que existem um método mais eficaz para fazer tais chamada à shell, são as função criação de processo fork() e e execução exec*(). Para portar então isso esbarrei no seguinte problema, o meu system usa operadores de redirecionamento da shell (>), pois preciso gravar a saída do df em um arquivo.
<code> system("df -h > logDF"); </code>
Pelo outro método até consigo executar a instrução df pelo novo processo, porém o problema é para fazer o redirecionamento para algum arquivo, e isso é extremamente necessário à minha aplicação, pois necessito retornar esse valor (via RPC) para o cliente em questão.
Esta ai o código para executar o df, falta-me um modo para redirecionar o mesmo.
<code>
pid_t process = fork();
if (process == 0) { // conseguiu criar novo processo filho
execl("/bin/df", "-h", (char*)0);
}
</code>
obs: Já tentei colocar o "> logDF" como parâmetro, porém não funciona.
Bom, se alguém de vocês já tenham mechido com isso ou sabem o que devo procurar para fazer tal procedimento..
Estarei no aguardo!
att
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.