經過半個小時的PHP源頭摔跤後,我放棄了。 :P問題是 - PHP flock()函數在Gentoo Linux系統上調用了哪些系統調用?我遇到了一些問題(比如塊爲30秒 - 每20個循環迭代類問題),我想知道爲什麼會這樣。PHP flock() - 引擎蓋下有什麼?
6
A
回答
0
除非我誤解了你的問題,否則PHP的flock()
是Gentoo上Unix系統函數flock()
的調用。它們具有相同的語義。
0
您是否在聯網或安裝的驅動器上使用它?如果您遇到的問題是deadlock,並且有些comments in the documentation談論此問題,我不會感到驚訝。
3
// example: $stream = fopen(FILE, 'rb') or die('???');
$md = stream_get_meta_data($stream);
echo $md['wrapper_type'];
flock($stream);
如果打印
plainfile那麼調用php函數flock()由調用flock()的php_stdiop_set_option(...)處理。取決於PHP是否使用HAVE_FLOCK編譯,這可能是系統調用
flock()或flock_compat.c中定義的函數,該函數使用
fcntl()。在我的gentoo系統上,PHP是用HAVE_FLOCK編譯的。
主/流/ plain_wrapper.c @靜態INT php_stdiop_set_option(...):
case PHP_STREAM_OPTION_LOCKING: if (fd == -1) { return -1; } if ((zend_uintptr_t) ptrparam == PHP_STREAM_LOCK_SUPPORTED) { return 0; } if (!flock(fd, value)) { data->lock_flag = value; return 0; } else { return -1; } break;
2
http://www.opengroup.org/onlinepubs/009695399/functions/fcntl.html
/etc/standard/flock_compat.c [line 66]
ret = fcntl(fd, operation & LOCK_NB ? F_SETLK : F_SETLKW, &flck);
相關問題
- 1. 什麼是引擎蓋下鑄造
- 2. Prolog如何在技術上工作?引擎蓋下有什麼?
- 3. 引擎蓋下的繼承
- 4. 引擎蓋下的OpenFileDialog
- 5. XNA在引擎蓋下?
- 6. Touchstart vs Click。引擎蓋下發生了什麼?
- 7. 參數綁定:引擎蓋下發生了什麼?
- 8. 引擎蓋下的__weak限定變量發生了什麼?
- 9. 分解shell腳本;引擎蓋下發生了什麼?
- 10. 什麼是基於Node.js的引擎蓋下?
- 11. 自動裝箱規則,引擎蓋下是什麼?
- 12. bash flock:爲什麼200?
- 13. PHP flock()備選
- 14. 什麼是Twig for php模板引擎?
- 15. SignalR.Redis如何在引擎蓋下工作?
- 16. CSS如何在引擎蓋下工作?
- 17. Mockito.when如何在引擎蓋下工作
- 18. 引擎蓋下的Grails list()方法
- 19. callvirt如何在引擎蓋下工作?
- 20. 原子操作:引擎蓋下
- 21. 引擎蓋下如何遞歸處理
- 22. 引擎蓋下的ASP.NET控件
- 23. gmail如何在引擎蓋下工作
- 24. readline函數:引擎蓋下,python
- 25. Gperftools如何在引擎蓋下工作?
- 26. 瀏覽器引擎和渲染引擎有什麼區別?
- 27. 什麼物理引擎會對Silverlight池引擎有好處?
- 28. 「數據庫引擎」和「查詢引擎」有什麼區別?
- 29. Netty setRadable()引擎蓋
- 30. 爲什麼引擎很有用?
語義 - 是的。但它真的叫flock()嗎? – 2009-06-16 14:16:09
我無法證明它,因爲我現在沒有運行PHP的副本,但我相信是的,是的。爲什麼不用strace自己試試呢? – 2009-06-16 14:25:00
我只有FTP訪問服務器。 – 2009-06-16 14:28:14