В настоящее время я пытаюсь перенаправить вывод моей функции на p ie, но, похоже, он не работает. Все, что он делает, это просто выводит на экран pwd и ничего не делает для p ie .txt. Пытаюсь реализовать pwd > pie
. Заранее спасибо! Я копирую пример redirect.c
с этого сайта http://www.cs.loyola.edu/~jglenn/702/S2005/Examples/dup2.html. Если я копирую это точно, это работает. Но когда я пытаюсь сделать это с моей собственной командой, это не работает.
void printWord(std::string cmd) {
char c[cmd.size() + 1];
std::copy(cmd.begin(), cmd.end(), c);
c[cmd.size()] = '\0';
write(STDIN_FILENO, &c, strlen(c));
}
void printPWD() {
std::vector<char> buffer;
std::string dir = getcwd(buffer.data(), buffer.size());
printWord("\n" + dir + "\n");
}
int main () {
int in, out;
char *grep_args[] = { "grep", "cpp", NULL };
// open input and output files
out =
open ("pie.txt", O_WRONLY | O_TRUNC | O_CREAT,
S_IRUSR | S_IRGRP | S_IWGRP | S_IWUSR);
dup2 (out, 1);
close (out);
printPWD();
return 0;
}
Попытка заставить pwd > pie
работать.