C 函数在目录中逐个读取文件

C 函数在目录中逐个读取文件,c,linux,file-handling,C,Linux,File Handling,我正在用C实现一个SMTP发送器,它应该在创建文件时从目录中读取文件,处理数据并删除文件 我怎样才能实现这个轮询功能,而这个功能应该一直自动执行下去呢?看看它是否能满足您的需要。inotify允许您使用单个文件描述符来监视目标目录中的事件。您可以使用select避免轮询,并立即收到目录中创建的任何文件的通知,以便进行处理 有一些示例代码。我相信网络上还流传着其他例子。看看它是否能满足您的需要。inotify允许您使用单个文件描述符来监视目标目录中的事件。您可以使用select避免轮询,并立即收到

我正在用C实现一个SMTP发送器,它应该在创建文件时从目录中读取文件,处理数据并删除文件

我怎样才能实现这个轮询功能,而这个功能应该一直自动执行下去呢?

看看它是否能满足您的需要。inotify允许您使用单个文件描述符来监视目标目录中的事件。您可以使用select避免轮询,并立即收到目录中创建的任何文件的通知,以便进行处理

有一些示例代码。我相信网络上还流传着其他例子。

看看它是否能满足您的需要。inotify允许您使用单个文件描述符来监视目标目录中的事件。您可以使用select避免轮询,并立即收到目录中创建的任何文件的通知,以便进行处理


有一些示例代码。我相信网络上还流传着其他一些例子。

一个简单的选择是定期运行您的程序。程序可以使用LinuxAPI调用来迭代目录。它不必主动监视目录

下面是一个简单的代码示例:

#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);
}

免责声明:为了简单起见,我没有包含检查或处理错误情况的代码。

一个简单的选项是定期从运行程序。程序可以使用LinuxAPI调用来迭代目录。它不必主动监视目录

下面是一个简单的代码示例:

#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);
}

免责声明:为了简单起见,我没有包含检查或处理错误情况的代码。

您使用的是什么编译器/目标平台?通过»过程数据«您的意思是处理文件并通过邮件发送结果?嗨,Alex,我一直在关注您的问题。它们真的很有趣。我感谢你的热情。我有一个疑问。你在用C做更大的事情吗?或者你只是在练习C语言根据你的兴趣可以完成的每一项任务。如果你不介意,请告诉我。无论如何。。热情很好。你使用的是什么编译器/目标平台?你的意思是处理文件并通过邮件发送结果?嗨,Alex,我一直在关注你的问题。它们真的很有趣。我感谢你的热情。我有一个疑问。你在用C做更大的事情吗?或者你只是在练习C语言根据你的兴趣可以完成的每一项任务。如果你不介意,请告诉我。无论如何。。好热情。