LINUX.ORG.RU

Сообщения rarelang

 

Программная отсылка электронной почты из под Windows, UNIX и LINUX

Всем добрый день.

Подскажите мне пожалуйста унифицированный способ отсылки электронного сообщения из CGI написанного на С++ (никакая другая технология меня в данный момент не интересует поскольку весь проект написан исключительно на C++) который бы работал под Windows, UNIX и Linux без значительного изменения исходного кода (с использованием POSIX-совместимых библиотек или чего-то подобного).

Как я понимаю один из оптимальных вариантов это подсоединяться к почтовому серверу через SMTP и отсылать электронное сообщение таким образом с заранее созданного почтового ящика (Outlook ведь как то подсоединяется почтовому серверу, да и программы проверки сообщений под FreeBSD тоже). Дело в том что я практически не работал с программированием сетей, а с отсылкой электронных сообщений вообще никогда не встречался.

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

Заранее спасибо за любую помощь (и дополнительное гигантское спасибо за пример кода :)).

(Также буду очень признателен за любую ссылку на документацию по работе с SMTP, и подобными ему протоколами работы с электронной почтой)

rarelang
()

Обеспечение последовательного доступа к ресурсам

Всем добрый день. Посоветуйте мне пожалуйста решение для следующей проблемы:

Я пишу CGI приложение с использованием C++, основная моя цель написать приложение свободно переносимое как под Windows так и под Linux/UNIX FreeBSD. В приложении мне нужно обеспечить последовательный доступ к определенным файлам для запускаемых в произвольном количестве CGI приложений. Т.е. я ни в коем случае не должен допустить одновременного доступа к определенным файлам (которые представляют собой что-то вроде базы данных) более чем одной копии CGI приложения. Мне посоветовали использовать lock-файл. Насколько я понимаю я должен использовать ANSI С/С++ и POSIX функции которые бы работали как в Windows так и в Linux/UNIX. Дополнительная проблема состоит в том что если к примеру во время работы одного из CGI полетит сервер то lock-файл удален не будет и таким образом ни один из последующих запусков CGI успешным не будет пока кто-то вручную этот lock-файл не удалит.

Как я понимаю алгоритм можно разбить на две функции Lock() и Unlock() -

Алгоритм Lock() следующий:

1 - создание lock-файла 2 - проверка времени создания файла и если он создан позднее чем к примеру 15 минут назад то значит что файл недействителен и можно устанавливать lock 3 - создание файла блокировки или ожидание пока другая копия CGI снимет блокировку

Алгоритм Unlock() следующий:

1 - удаление lock-файла

Подскажите мне пожалуйста функции создания и проверки времени и факта существования файла которые бы работали под Windows, Linux и UNIX, насколько я знаю такие функции существуют.

Заранее спасибо.

rarelang
()

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