Pid'in SIGCHLD sinyalini gönderen bir işlem olduğunu anlamaya çalışıyorum ve bunu SIGCHLD için oluşturduğum bir sinyal işleyicisinde yapmak istiyorum. Bunu nasıl yapardım? Deniyorum: Çocuğumda ortaya çıkan herhangi bir süreç için beklemek istiyorum.Sonlandırılmış işlemin pidini belirleme
5
A
cevap
7
waitpid()
'u daha fazla veya daha az gösterildiği gibi, sizden ölen çocuk süreçlerinden birinin PID'sini size söyleyeceksiniz - bu genellikle ölen tek süreç olacak, ama eğer onların bir telaşı varsa, toplamak için bir sinyal ve cesetler alabilirsin. Yani, kullanın: Eğer çocuğun çıkış durumu hakkında umurumda değil eğer NULL
ile &status
yerini alabilir
void sigchld_handler(int signum)
{
pid_t pid;
int status;
while ((pid = waitpid(-1, &status, WNOHANG)) != -1)
{
unregister_child(pid, status); // Or whatever you need to do with the PID
}
}
.
İlgili konular
- 1. İşlemin
- 2. Bir işlemin neden DTC'ye iletildiğini izleme
- 3. C++, boost asio, boş sonlandırılmış dize alma
- 4. Alt işlemin bir alt işlemin tamamen başlatıldığını bildirme
- 5. Bir alt işlemin formu
- 6. Bir işlemin belleğini dökün
- 7. Bu işlemin etiketi yok,
- 8. İşlemin durumu kontrol etme
- 9. Bir işlemin sınamalarını okuma zamanları
- 10. Bir işlemin önceliğini nasıl değiştiririm?
- 11. Ruby'de alt işlemin akış çıkışı
- 12. Windows'da son çalışan işlemin PID'si
- 13. Bir işlemi sonlandırın ve işlemin
- 14. Sınıf Sorumluluğu ve İşbirlikçiler Belirleme
- 15. JSP Sonlandırılmış <s:a> Yuvalanmış OGNL Etiketi
- 16. ghci'nin sonlandırılmış tür imgesini eklemek için bir hata neden olur
- 17. "Sonlandırılmış bir nesne" nedir ve neden üzerine yöntemleri çağırmıyorum?
- 18. Saydam "null sonlandırılmış şeffaf elemanlar dizisi" ne anlama gelir
- 19. Objective-C etrafında geçen ... nil sonlandırılmış bağımsız değişken listeleri
- 20. gibi bir nil-sonlandırılmış NSString listesini Oluşturma bir NSString *
- 21. Boş olmayan sonlandırılmış bir dizeyi printf kullanarak nasıl yazdırabilirim?
- 22. Yönlendirilmiş URL'yi Python'da belirleme
- 23. Görünümdeki boş alanı belirleme
- 24. Web çalışanlarının ortamını belirleme?
- 25. Matriste satır sayısını belirleme
- 26. WKWebView'ın neden çakılmadığını belirleme
- 27. Karmaşık bir sayı belirleme
- 28. php zarafet tuşları belirleme
- 29. Görüntü Parlaklığını/Parlaklığını Belirleme
- 30. DLL kökeni belirleme
Yaklaşımınız doğru, işe yaramalı. Sorunuz nedir? – qrdl
SIGCHLD'yi gönderen sürecin pidini nasıl alabilirim? – Hristo
'waitpid()', sinyal işleyicinizden çağırırsanız sonlandırılmış çocuğun pidini döndürür. – qrdl