Sau khi đấu vật với nguồn PHP trong nửa giờ, tôi đã từ bỏ. : P Câu hỏi đặt ra là: gọi hàm PHP flock() nào trên hệ thống Gentoo Linux? Tôi đang gặp một số vấn đề với nó (như khối-cho-30-giây-trong-mỗi-một-of-20-loop-iterations loại vấn đề) và tôi muốn biết tại sao lại như vậy.PHP đàn() - những gì dưới mui xe?
Trả lời
Trừ khi tôi hiểu nhầm bạn đang hỏi gì, PHP flock()
là cuộc gọi đến chức năng hệ thống Unix flock()
trên Gentoo. Họ có ngữ nghĩa giống hệt nhau.
Bạn đang sử dụng nó trên một ổ đĩa được kết nối hoặc nối mạng? Tôi sẽ không ngạc nhiên nếu những gì bạn đang gặp phải là deadlock và một số trong số comments in the documentation nói về điều đó.
Đọc kỹ - Gentoo Linux tại đây. Nhưng thiết lập đầy đủ là một chút phức tạp vì vậy tôi chỉ muốn biết những gì nó gọi bên dưới, để tôi có thể đặt hình ảnh đầy đủ với nhau bản thân mình. –
Và không, nó không phải là bế tắc, mà tôi chắc chắn. Nhưng có những điều khác tôi nghi ngờ. –
Ahh, tôi chỉ phát hiện ra rằng tập tin nằm trên một NFS gắn kết. Và hộp máy chủ cũng đang cố gắng đổ() nó (tải máy chủ web cân bằng, bạn thấy). –
// example: $stream = fopen(FILE, 'rb') or die('???');
$md = stream_get_meta_data($stream);
echo $md['wrapper_type'];
flock($stream);
nếu điều này in
plainfile thì lệnh gọi hàm băm php() được xử lý bởi php_stdiop_set_option (...) gọi flock(). Tùy thuộc vào việc PHP được biên dịch với HAVE_FLOCK hay không, đây có thể là hệ thống gọi
flock() hoặc một hàm được định nghĩa trong flock_compat.c, sử dụng
fcntl(). Trên hệ thống gentoo của tôi PHP đã được biên dịch với HAVE_FLOCK.
chính/suối/plain_wrapper.c @ tĩnh 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;
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);
Nếu chức năng này được gọi hay không phụ thuộc vào thời gian biên dịch xác định HAVE_FLOCK – VolkerK
- 1. Thừa kế dưới mui xe
- 2. Touchstart và Nhấp. Điều gì xảy ra dưới mui xe?
- 3. Hoạt động nguyên tử: dưới mui xe
- 4. SignalR.Redis hoạt động như thế nào dưới mui xe?
- 5. Rails 3 ActiveRecord phương pháp chaining, dưới mui xe
- 6. Làm thế nào để memchr() làm việc dưới mui xe?
- 7. Hiểu EF dưới mui xe. Bao gồm vs tham gia
- 8. Dưới mui xe, là các bảng băm đối tượng Javascript?
- 9. Notepad làm gì khác biệt dưới mui xe so với lệnh IN?
- 10. Máy ảo Flash sử dụng gì dưới mui xe để vẽ?
- 11. Điều gì xảy ra dưới mui xe khi chúng tôi thực hiện presentViewController?
- 12. Tín hiệu và khe được thực hiện dưới mui xe như thế nào?
- 13. Lập trình hướng sự kiện Win32 được thực hiện như thế nào dưới mui xe?
- 14. không đồng bộ và đang chờ mà không có "chuỗi"? Tôi có thể tùy chỉnh những gì xảy ra dưới mui xe không?
- 15. Cách hoạt ảnh của UIView với các khối hoạt động dưới mui xe
- 16. Làm thế nào để so sánh chuỗi Perl dưới mui xe?
- 17. Làm thế nào để IEnumerable khác với IObservable dưới mui xe?
- 18. Giá trị cập nhật của FormView EditTemplate trong ObjectDataSource UpdateParameters dưới mui xe như thế nào?
- 19. Http và tải lên tập tin - Làm thế nào nó thực sự hoạt động (dưới mui xe)
- 20. Các tham số tùy chọn VB.NET hoạt động như thế nào 'Dưới mui xe'? Họ có tuân thủ CLS không?
- 21. những gì dưới đây biểu hiện cron, có nghĩa là?
- 22. Làm thế nào để một công việc có thể gọi dưới mui xe? Làm cách nào để một đối tượng có thể gọi trả về một giá trị?
- 23. chạy Tìm kiếm Đàn hồi dưới dạng dịch vụ Windows
- 24. Xem những gì CURL gửi từ tập lệnh PHP
- 25. Ngoại lệ trong PHP là gì và những gì là thử và bắt?
- 26. Lớp học lái xe là gì? (Java)
- 27. những gì hiện .htaccess với dòng AddHandler php5-script .php làm gì?
- 28. là những gì AbstractTestNGSpringContextTests
- 29. Vì vậy, DOM scrollIntoView căn chỉnh trên cùng/dưới cùng, nhưng những gì về trái/phải?
Semantics - vâng. Nhưng nó có thực sự gọi đàn chiên()? –
Tôi không thể chứng minh điều này vì hiện tại tôi không chạy bản sao của PHP, nhưng tôi tin như vậy, vâng. Tại sao không thử nó ra cho mình với strace? –
Tôi chỉ có quyền truy cập FTP vào máy chủ. –