LINUX.ORG.RU

Сообщения iwsyhgia

 

Что означает постфикс в pthread_np.h

Форум — General

Что означает постфикс в pthread_np.h?

iwsyhgia
()

Создание приостановленного потока

Форум — General

Каким способом можно создать приостановленный поток в Linux?

iwsyhgia
()

Расположение буквы ё в Unicode

Форум — General

Почему буква ё в таблице Unicode идет не по алфавиту?

iwsyhgia
()

Понятие дистрибутива

Форум — General
Дистрибути́в операцио́нной систе́мы — это форма распространения системного программного обеспечения. Наличие дистрибутивов вызвано тем, что форма программного обеспечения, используемая для его распространения, почти никогда не совпадает с формой программного обеспечения работающей системы.

Что подразумевается формой программного обеспечения в формулировке понятия выше? Спасибо.

iwsyhgia
()

Расшифровка аббревиатуры

Форум — General

В заголовоном файле sys/stat.h определены семейство констант S_IWUSR, S_IRUSR, .. и т.д. Сокращения каких английских слов являются буквы S и I? Заранее благодарю за ответ.

iwsyhgia
()

порты ввода-вывода

Форум — General

В линукс есть семейство функций(out, in) для работы с портами ввода/вывода. Какое общее количество портов ввода/вывода и чем обусловлена эта цифра? Заранее благодарю за ответ.

iwsyhgia
()

функция select

Форум — General
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <wait.h>
#include <time.h>

int fd[100][2];
fd_set read_set;
struct timeval val;

int main(int argc, char *argv[], char *env[]) {
   val.tv_sec = 0;
   val.tv_usec = 0;
   for (int i = 0; i < 10; ++i) {
      pipe(fd[i]);
      FD_SET(fd[i][0], &read_set);
   }
   printf("%d\n", select(30, &read_set, NULL, NULL, &val));//если эту строчку закомментировать, ожидаемый результат будет совпадать с результатом работы программы(выведет 10)
   for (int i = 0; i < 10; ++i) {
      write(fd[i][1], "sad", 2);
   }
   printf("%d\n", select(30, &read_set, NULL, NULL, &val));
   return 0;
}

Вывод: два нуля. Правильно ли я понимаю, что функция select модифицирует передаваемые ей множества дескрипторов(исключает те дескрипторы, которые заблокированы для чтения/записи)? Задаю данный вопрос, тк соответствующей информации в мане не нашел.

iwsyhgia
()

Вопрос по stdin, stdout, stderror

Форум — General

Правильно ли я понимаю, что в каждом выполняющемся процессе есть буфер для каждого потока(stdin, stdout, stderror), в который соответствующий поток заносит информацию?

iwsyhgia
()

вопрос по функции select

Форум — General
 #include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <cmath>
#include <climits>
#include <set>
#include <utility>
#include <string>
#include <list>
#include <errno.h>
#include <sys/stat.h>
#include <dirent.h>
#include <map>
#include <cstring>
#include <sys/wait.h>
#include <utility>
#include <signal.h>
#include <sys/types.h>
#include <sys/time.h>
using namespace std;
 
fd_set fdread;
 
int main() {
   FD_ZERO(&fdread);
   int fd[2];
   pipe(fd);
   pipe(fd);
   pipe(fd);
   pipe(fd);
   pipe(fd);
   pipe(fd);
   pipe(fd);
   FD_SET(fd[0], &fdread);
   write(fd[1], "sdssds", 6);
   printf("%d\n", fd[1]);
   int x = select(50, &fdread, NULL, NULL, NULL);
   printf("%d", x);
   return 0;
}

Как вы заметили из кода выше в множестве дескрипторов нету 1.Почему select всегда возвращает дескриптор на стандартный вывод т.е 1?

iwsyhgia
()

способы убить зомби процессы

Форум — General

Вопрос в теме. 1 - waitpid(-1, &status, 0); 2 - убить родителя

Какие способы вы еще знаете?

iwsyhgia
()

функция read

Форум — General

Если я не ошибаюсь, при вызове функции read для пустого неименованного канала, то функция будет ожидать ввод данных в неименованный канал. Можно ли сделать так, чтобы функция не ожидала ввод данных?

iwsyhgia
()

Медленное копирование файла

Форум — General

Требуется сделать копию файла. Я делаю это с помощью 10ти потоков(функция потока привел ниже). Проблема в том, что скорость копирования на порядок ниже чем у утилиты cp. В чем может быть причина проблемы?

struct argument {
   FILE *fin, *fout;
   bool done;
} argument;

void *tread_function(void *arg) {
   struct argument *p = (struct argument *)arg;
   FILE *fin = p->fin, *fout = p->fout;
   signed char byte;
   do {
      sem_wait(&semaphore);
      byte = fgetc(fin);
      if (!feof(fin)) fputc(byte, fout);
      sem_post(&semaphore);
   } while (!feof(fin));
   p->done = 1;
}

iwsyhgia
()

Ожидание detach потока

Форум — General

Вопрос в следующем: каким образом можно подождать завершение выполнение detach потока(pthread_detach) в main потоке? Заранее спасибо.

iwsyhgia
()

Потоки

Форум — General

Я столкнулся с проблемой, что внутри функции потока некоторые файлы не закрываются и в дальнейшем я получая ошибку «Too many open files». Одновременно может работать от 10 потоков. Потоки не синхронизированы(но я так понимаю это не является причиной моей проблемы). С чем связано не закрытие некоторых файлов? Функция потока(считает количество совпадений байт в заданной последовательности в файле):

 void *thread_function(void *arg) {
   FILE *f;
   struct thread_info *p = (struct thread_info*)arg;
   if ((f = fopen(p->path, "rb")) != NULL) {
      int i = 0, res = 0, count = 0;      
      char byte;
      while (!feof(f)) {
         ++count;
         fscanf(f, "%c", &byte);
         if (byte == sequence[i]) ++i;
            else i = 0;
         if (i == strlen(sequence)) {
            i = 0;
            ++res;
         }
      }
      if (fclose(f) != 0) print_error(p->path);
      printf("%lu %s %d %d %d\n", syscall (SYS_gettid), p->path, count, res, tread_list.size());
   } else print_error(p->path);
   p->number = 0;
}

iwsyhgia
()

Маска обработчика сигнала

Форум — General

Правильно я понимаю, что маска обработчика блокирует соответствующие в ней сигналы?

sa_mask specifies a mask of signals which should be blocked (i.e.,
       added to the signal mask of the thread in which the signal handler is
       invoked) during execution of the signal handler.  In addition, the
       signal which triggered the handler will be blocked, unless the
       SA_NODEFER flag is used.

iwsyhgia
()

Operation not permitted

Форум — General

В каких случаях setpgid() дает ошибку в заголовке? Когда переносим чайлда в другую группу?

iwsyhgia
()

setpgid не переопределяет группу процесса

Форум — General

http://pastebin.com/TJHGbc9m три подряд идущие команды начиная с 120 строчки работают неверно. Это можно проверить вставив скомпилировав исходник. Сама программа представляет дерево процессов 1->2,3,4,5->6,7,8, которые в свою очередь перебрасываются по циклу сигналами. Собственно вопрос в следующем: с чем связана неверная работа команды setpgid?

iwsyhgia
()

Вопрос по процессам

Форум — General

Процесс может состоять только в одной группе процессов? Еще вопрос. Я так полагая pid лидера группы процессов совпадает с номером группы. Кто станет лидером группы после смены группы процессов лидером командой setpgid?

iwsyhgia
()

Восстановление связи stdout и консоли

Форум — General

После перенаправления(freopen) потока stdout в файл связь с консолью теряется. Как после перенаправления потока в файл восстановить эту связь?

iwsyhgia
()

задача - баш

Форум — General

Собственно, как можно сделать чтобы, после нахождения файла в директории(find /dir -type f) выводился через пробел pid процесса($$), полный путь файла, количество слов в нем(wc -w) и его размер(stat -c%s). Заранее благодарен.

iwsyhgia
()

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