Trong POSIX, có chức năng fork()
để tạo một tiến trình con. Làm thế nào tôi có thể đạt được chức năng của fork()
trong Windows?Làm cách nào để bắt đầu quá trình con trong Windows?
Trả lời
Không có tương đương trực tiếp là fork()
trên Windows.
CreateProcess()
là hàm gốc có thể được sử dụng để tạo quy trình mới (nhưng, một lần nữa, ngữ nghĩa khác với các số fork()
).
Để đặt điều này theo cách khác, trên Unix, có thể là một quá trình để tạo ra một bản sao rẻ tiền của chính nó. Không có cách nào rẻ tiền để làm điều này trên Windows.
Nếu bạn không quan tâm đến khía cạnh nhân bản của fork()
, thì CreateProcess()
chỉ nên làm tốt.
Nhưng, điểm khác nhau giữa CreateProcess() và fork() là gì? –
@Tu_JianWu: quy trình mới được tạo bởi fork() kế thừa trạng thái của cha mẹ, bao gồm giá trị của các biến và con trỏ lệnh hiện tại. Quá trình mới được tạo bởi CreateProcess() không, nó được bắt đầu từ đầu. Ngoài ra fork() chỉ có thể tạo một bản sao mới của tệp thực thi đang chạy, CreateProcess() có thể khởi chạy bất kỳ tệp nào có giá trị. –
@Harry Johnston: Cảm ơn ... –
- 1. Bắt đầu quá trình từ xa trong mạng Windows
- 2. bắt đầu quá trình từ dịch vụ .NET windows
- 3. Bắt đầu quá trình trong Java?
- 4. bắt đầu quá trình ghi trong Groovy
- 5. Bắt đầu quá trình phi cao từ quá trình cao
- 6. Làm cách nào để bắt đầu lập trình bằng Clojure trong Windows?
- 7. Làm cách nào để tìm ID quá trình (pid) của quá trình được bắt đầu bằng java?
- 8. Quá trình bắt đầu và mạo danh
- 9. Hủy quá trình bắt đầu qua System.Diagnostics.Process.Start()
- 10. quy trình con: xóa quy trình con trong Windows
- 11. Làm thế nào để bắt đầu một quá trình và làm cho nó 'độc lập'
- 12. Làm cách nào để nhận được dòng lệnh bắt đầu quá trình
- 13. Tôi làm cách nào để bắt đầu quá trình Java thứ hai?
- 14. PHP trên máy tính windows; Bắt đầu quá trình trong nền
- 15. Monit không bắt đầu quá trình
- 16. Bắt đầu một quá trình riêng biệt
- 17. Cách chạy IIS Express như một quá trình được bắt đầu qua Dịch vụ Windows
- 18. Quá trình đồng bộ C# bắt đầu
- 19. Tôi đã bắt đầu một quy trình, làm cách nào để gọi một phương thức trong quá trình đó
- 20. Quá trình bắt đầu từ luồng
- 21. Django: bắt đầu quá trình trong chuỗi nền?
- 22. Làm cách nào để bắt đầu lập trình VOIP?
- 23. Làm cách nào để bắt đầu Quy trình bị ẩn?
- 24. Bắt đầu quá trình theo dõi trong hệ thống
- 25. Làm cách nào để đồng bộ hóa quá trình thực hiện quy trình Phụ huynh/Con?
- 26. Leiningen - làm thế nào để giết quá trình con?
- 27. C# - làm thế nào để kiểm tra xem một quá trình được bắt đầu thành công
- 28. Làm cách nào để thực hiện chương trình trước khi quá trình gỡ cài đặt bắt đầu?
- 29. làm thế nào để tách quá trình sidekiq một lần bắt đầu tại nhà ga
- 30. cách đơn giản nhất để bắt đầu một quá trình mới/thread trong PHP
Điều gì muốn biết? Làm thế nào để tạo một chương trình chuỗi trên Windows? – Mithrandir
Ồ, không, tôi gặp rắc rối khi tôi nghiên cứu Linux ... Trên Windows, chúng tôi có thể sử dụng hàm CreateThread (...) để tạo chuỗi. Nhưng trên Linux, có một hàm fork() để tạo ra một tiến trình con, tôi muốn biết wehter có chức năng tương tự như fork() trên Window ... –
Theo như tôi biết yu có thể sử dụng _spawn(), _beginthread () và _endthread(). – Mithrandir