LINUX.ORG.RU

Сообщения fortochkin

 

Зачем нужны разделы?

Форум — General

Зачем нужны разделы на жестком диске? При ДОС ФТ получается факап если на разделе закончилось место. При ЛВМ получается оверхед и еще один уровень абстракции.

В голову приходит что польза от использования разделов- возможность одновременного использования нескольких ФС, и большая надежность системы за счет более низкоуровневого отключения записи в раздел.

Последнее ненужно, т.к.,например, у каталога boot можно поставить только чтение, и это будет столько же надежно как вынести boot на другой раздел.

В плане всяких серверов, возможно разбиение диска необходимо, но зачем разбивать диск на домашней пекарне то?

 

fortochkin
()

Непонимаю я как открыть пайп

Форум — Development

Вот стандартный пример из мана:

#include <sys/types.h>
       #include <sys/wait.h>
       #include <stdio.h>
       #include <stdlib.h>
       #include <unistd.h>
       #include <string.h>

       int
       main(int argc, char *argv[])
       {
           int pipefd[2];
           pid_t cpid;
           char buf;

           if (argc != 2) {
               fprintf(stderr, "Usage: %s <string>\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           if (pipe(pipefd) == -1) {
               perror("pipe");
               exit(EXIT_FAILURE);
           }

           cpid = fork();
           if (cpid == -1) {
               perror("fork");
               exit(EXIT_FAILURE);
           }

           if (cpid == 0) {    /* Child reads from pipe */
               close(pipefd[1]);          /* Close unused write end */

               while (read(pipefd[0], &buf, 1) > 0)
                   write(STDOUT_FILENO, &buf, 1);

               write(STDOUT_FILENO, "\n", 1);
               close(pipefd[0]);
               _exit(EXIT_SUCCESS);

           } else {            /* Parent writes argv[1] to pipe */
               close(pipefd[0]);          /* Close unused read end */
               write(pipefd[1], argv[1], strlen(argv[1]));
               close(pipefd[1]);          /* Reader will see EOF */
               wait(NULL);                /* Wait for child */
               exit(EXIT_SUCCESS);
           }
       }

Зачем делать fork? Почему нельзя сделать все в одном процессе?

Вот на примере конкретной задачи: необходимо прочитать файл и инвертировать его биты.

т.е. конвейер будет выглядеть так:

cat ./file | invert_bits | cat

почему не будет работать:

char buf;
pipe(pipefd)
while(read(pipefd[0],sizeof(buf),buf){
   buf ^= 0xff;
   write(read(pipefd[1],sizeof(buf),buf);
}
(код на компиляцию не проверял)

fortochkin
()

Поксорить (xor) раздел диска

Форум — General

Необходимо зашифровать раздел диска, простейшим способом,чтобы его нельзя было прочитать. Идеально подходит XOR т.к. быстро. Как зашифровать раздел диска используя только стандартные утилиты? Скрипт ксорящий по 1 байту ненужен.

 , ,

fortochkin
()

RSS подписка на новые темы