Top.Mail.Ru
? ?

algrid, записи по тегу linux_programming — Живой Журнал

Метка: linux_programming

Перезапуск текущего процесса в Linux
Imagealgrid
Как перезапустить программу? Очевидно, вызвав exec(...) Но для этого нужно знать имя исполняемого файла программы. Если задать это имя жестко в программе, то это ограничит возможности переименования/перемещения программы. В Linux можно вызвать что-то вроде:

 execlp("/proc/self/exe", "a.out", NULL);

/proc/self/exe  (или  /proc/<pid>/exe ) - это ссылка, всегда указывающая на исполняемый файл программы.
Для Solaris нужно использовать /proc/pid/object/a.out


Работа с файлами >2GB в Linux
Imagealgrid

Давно хотел посмотреть как это делается. Вот нашел: http://learn-from-the-guru.blogspot.com/2008/02/large-file-support-in-linux-for-cc.html Скомпилировал программку с -D_FILE_OFFSET_BITS=64 , и sizeof(off_t) уже 8. Впрочем, там упомянуты и другие методы работы с большими файлами.
В очередной раз убеждаюсь, насколько важно пользоваться специализированными типами (вроде off_t). Использование в данном случае int, например, вместо off_t может привести к неприятностям.

Метки:

Image