我想找到一种使用posix_mkfifo创建的命名管道文件来使用“include”语句的方法。由于我的期望值很高,我看到页面被阻塞,等待我确定不会发生的操作而感到非常沮丧。
因此,我的逻辑是,“include”肯定使用某种“fopen”系列函数,并且可以以这种方式打开fifo,我的唯一要做的事情就是:创建一个fifo,然后写入其中,可能保持资源存活直到它被包含,包含文件,关闭处理程序,删除文件。但当然不是那样的。我认为,include以阻塞方式打开文件,这种行为是我的问题的原因。在c中使用fifo时,我注意到,在非阻塞打开方法中,fifo中的信息会保留,直到读者决定读取它。我希望有同样的行为。
尽管我尝试打开另一页以写入相同的fifo,以便读者可以继续,但也注定失败了。此外,不仅页面不再响应,而且它也无法响应用户中止,事实上,我的会话被阻塞了几分钟,因为session_start()会告诉我不能同时由两个进程使用(我可能在这里对错误消息有所错误,我记不清了,而且我已经删除了测试文件。)
我的问题是是否有任何方法可以实现此效果:使用fifo包含。
最后,为了回答所有关于我到底在做什么的问题,我会说我的系统将自己置于真正的代码和其处理之间,以便以动态方式完全可逆地修改它。为此,它需要读取原始文件,检查代码,在需要时更改代码,然后将其写入文件夹中的一个新“根”文件夹中,保持文件夹和文件层次结构,然后“包含”该文件。
目前,我用真实文件替换了fifo的使用,但我需要过滤大量代码。虽然eval在我的函数中被过度使用,但它不是解决方案,因为它不保留当前目录、脚本名称或任何特定于实际文件的内容,除此之外,它还对许多事情非常敏感,特别是相对路径和奇怪的php语法使用。所以我仍然被困在写文件中。
因此,该系统是一个可怕的时间消耗者和糟糕的资源管理器,我的最初想法是写入更轻、存储在内存中、易失性的fifo,而这些fifo真正为IPC而设计。
因此,我的逻辑是,“include”肯定使用某种“fopen”系列函数,并且可以以这种方式打开fifo,我的唯一要做的事情就是:创建一个fifo,然后写入其中,可能保持资源存活直到它被包含,包含文件,关闭处理程序,删除文件。但当然不是那样的。我认为,include以阻塞方式打开文件,这种行为是我的问题的原因。在c中使用fifo时,我注意到,在非阻塞打开方法中,fifo中的信息会保留,直到读者决定读取它。我希望有同样的行为。
尽管我尝试打开另一页以写入相同的fifo,以便读者可以继续,但也注定失败了。此外,不仅页面不再响应,而且它也无法响应用户中止,事实上,我的会话被阻塞了几分钟,因为session_start()会告诉我不能同时由两个进程使用(我可能在这里对错误消息有所错误,我记不清了,而且我已经删除了测试文件。)
我的问题是是否有任何方法可以实现此效果:使用fifo包含。
最后,为了回答所有关于我到底在做什么的问题,我会说我的系统将自己置于真正的代码和其处理之间,以便以动态方式完全可逆地修改它。为此,它需要读取原始文件,检查代码,在需要时更改代码,然后将其写入文件夹中的一个新“根”文件夹中,保持文件夹和文件层次结构,然后“包含”该文件。
目前,我用真实文件替换了fifo的使用,但我需要过滤大量代码。虽然eval在我的函数中被过度使用,但它不是解决方案,因为它不保留当前目录、脚本名称或任何特定于实际文件的内容,除此之外,它还对许多事情非常敏感,特别是相对路径和奇怪的php语法使用。所以我仍然被困在写文件中。
因此,该系统是一个可怕的时间消耗者和糟糕的资源管理器,我的最初想法是写入更轻、存储在内存中、易失性的fifo,而这些fifo真正为IPC而设计。