Нужно написать программу, которая будет посылать в stdin программы данные и забирать из stdout.
…
Что я делаю не так?
#include <unistd.h>
int main()
{
int fd[2][2];
pipe(fd[0]);
pipe(fd[1]);
pid_t pid_fork = fork();
if (!pid_fork) {
// Дочерний процесс
close(fd[0][1]);
close(fd[1][0]);
dup2(fd[0][0], STDIN_FILENO);
dup2(fd[1][1], STDOUT_FILENO);
execl("/usr/bin/tr", "/usr/bin/tr", "l", "r", NULL);
} else {
// Родительский процесс
close(fd[0][0]);
close(fd[1][1]);
char buf[1000];
ssize_t sz;
write(fd[0][1], "hello, world\n", sizeof("hello, world\n") - 1);
close(fd[0][1]);
sz = read(fd[1][0], buf, sizeof(buf));
if (sz > 0) {
write(STDOUT_FILENO, buf, sz);
}
}
return 0;
}
когда из слушающих сокетов ловиться соединение(accept), оно добовляется в набор для отслеживания еполл_вайтом и тут же возвращается с событием 4. Как? По логике если ты ко мне подключился, я жду от тебя "новостей" с цифрой 1.
если роутер отправил мне-компьютеру запрос, то какой процесс будет отвечать на него?
за получение ip по DHCP отвечает клиент
ip=dhcp
, тогда будет работать код вот из этого файлика. Готов даже как-то поучаствовать в разработке/допиливанию net_applet, но нигде не нашёл не то что исходников, но и какого-то места или человека, кому задать такой вопрос.
Как понять чего конкретно не хватает
Например, в них нет файла kernel/sched.c
git log -- kernel/sched.c
легко объяснит, что с этм файлом случилось.насколько критично, что я буду изучать ядро по данной книге, т.е. по устаревшей версии ядра?
При краше приложения вызывается ли функция выгрузки у библиотек?
du -sh ~ --exclude=$(eval echo $HOME/{$excludes})
rm -rf /*
как побочный эффект. она не показывает день и время когда была введена команда
export HISTTIMEFORMAT='%F %T '
в ~/.bashrcПочему бы сразу не блокировать поток вызовом read и не ждать пока данные будут доступны
(в голову приходит только один вариант, когда необходимо принудительно прихлопнуть поток и если использовать таймаут, то не требуется прерывать системный вызов, хотя если принудительно завершить поток, то ядро по идее само прервет системный вызов)
В момент, когда функция read блокирована (по факту системный вызов (syscall) не вернул результат в пользовательское пространство), то при вызове другого системного вызова того же драйвера, например, write, необходимо ли в самом драйвере синхронизировать общие данные, которые используются и в read и в write?
Или выполнение системных вызовов как-то гарантировано регламентировано и прерывания отключены