system-calls- все статьи тега


Как не открыть файл дважды в linux?

У меня есть связанный список с fd и строкой, которую я использовал, чтобы открыть этот файл в каждой записи. Я хочу открывать и добавлять файлы в этот список, только если этот файл еще не открыт, потому что я открываю и анализирую эти файлы и не хочу делать это дважды. Моя идея состояла в том, чтобы сравнить имя файла с каждым именем в этом списке, но моя программа делает это несколько раз, и один файл в Linux может иметь несколько имен (мягкие/жесткие ссылки). Я думаю, что это не должно быть та ...

dup2 / dup - зачем мне нужно дублировать файловый дескриптор?

Я пытаюсь понять использование dup2 и dup. С главной страницы: DESCRIPTION dup and dup2 create a copy of the file descriptor oldfd. After successful return of dup or dup2, the old and new descriptors may be used interchangeably. They share locks, file position pointers and flags; for example, if the file position is modified by using lseek on one of the descriptors, the position is also changed for the other. The two descriptors do not share the close-on-exec flag, however. dup uses the lo ...

Как написать обработчик сигнала, чтобы поймать SIGSEGV?

Я хочу написать обработчик сигнала, чтобы поймать SIGSEGV. Я защищаю блок памяти для чтения или записи с помощью char *buffer; char *p; char a; int pagesize = 4096; mprotect(buffer,pagesize,PROT_NONE) это защищает байты размера страницы памяти, начиная с буфера, от любых операций чтения или записи. во-вторых, я пытаюсь прочитать память: p = buffer; a = *p это создаст SIGSEGV, и мой обработчик будет вызван. Пока все хорошо. Моя проблема заключается в том, что после вызова обработчика я ...

Как контролировать, на каком ядре выполняется процесс?

Я могу понять, как можно написать программу, которая использует несколько процессов или потоков: fork() новый процесс и использовать IPC, или создать несколько потоков и использовать такие механизмы связи. Я понимаю, переключение контекста. То есть, только с одним процессором, операционная система планирует время для каждого процесса (и есть тонны алгоритмов планирования там), и тем самым мы достигаем запуска нескольких процессов одновременно. и теперь, когда мы имея многоядерные процессоры (и ...

Вызов операционной системы, чтобы открыть URL-адрес?

Что я могу использовать для вызова ОС, чтобы открыть URL-адрес в любом браузере, который пользователь имеет по умолчанию? Не беспокойтесь о совместимости с кросс-ОС; если он работает в linux, этого достаточно для меня! ...