ファイルが作成されるたびにディレクトリからファイルを読み取り、データを処理し、ファイルを削除することになっているCでSMTP送信者を実装しています。
これを自動的に実行し続ける必要があるこのポーリング機能を実装するにはどうすればよいですか?
ファイルが作成されるたびにディレクトリからファイルを読み取り、データを処理し、ファイルを削除することになっているCでSMTP送信者を実装しています。
これを自動的に実行し続ける必要があるこのポーリング機能を実装するにはどうすればよいですか?
簡単なオプションは、プログラムをcronから定期的に実行することです。このプログラムは、Linux API 呼び出しreaddirを使用して、ディレクトリを反復処理できます。ディレクトリを積極的に監視する必要はありません。
簡単なコード例を次に示します。
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
int main()
{
DIR* dp = opendir(".");
struct dirent* de;
while (de = readdir(dp))
{
if (de->d_type != DT_REG) // Only print regular files
continue;
printf("Found file %s\n", de->d_name);
}
closedir(dp);
}
免責事項: 簡単にするために、エラー条件をチェックまたは処理するためのコードは含めませんでした。