Алексей Черемисин: сделал по примеру, выводит только на консоль. Попробовал следующим образом, но без успешно:
fdout=open("1", O_APPEND | O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);
fderr=open("2",O_APPEND | O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);
...
case 0:
if (isReader!=-1) {
close(0);
dup(oldChannelOut);
}
dup2(fdout, 1);
dup2(fderr, 2);
close(fdout);
close(fderr);
default:
{
default:
{
if(background) {
addJob(&jobListStartB,childId,commandArgv,BACKGROUND);
if (oldChannelOut != -1){
close(oldChannelOut);
oldChannelOut = -1;
}
}
else if(!background){
if (oldChannelOut != -1){
У меня для дочернего процесса, вывод сделан следующим образом:
int pipefd[2];
...
pid_t childId = fork();
case 0:
trap_signal(SIGTTOU, SIG_DFL);
trap_signal(SIGTTIN, SIG_DFL);
trap_signal(SIGCHLD, SIG_DFL);
if(!background && !convey)
tcsetpgrp(cterm, getpid());
setpgid(0, 0);
if (isWriter) close(pipefd[0]);
if (isReader!=-1) {
close(0);
dup(oldChannelOut);
}
if(isWriter){
close(1);
dup(pipefd[1]);
}
Как применить tee в данном случае?
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
А на счет смены профиль - на какой из будет менее болезненно перейти?