2011-04-21 33 views

cevap

2

Kendi SIGWHATEVER ürününü ekleyemez veya kaydedemezsiniz.

Bkz. sigset_t, sabit boyuttadır. Bkz valid_signal() beartraps.

+1

Bunu 'valid_signal()' olarak nereden bulabilirsiniz? Bunun için herhangi bir adam sayfası bulamadım. – kingsmasher1

+1

@ kingsmasher1: 'valid_signal()', sinyal JeremyP

+1

http://lxr.free-electrons.com/ident?v=2.6.28;i=valid_signal – JeremyP

4

Kullanıcı tanımlı amaçlar için tasarlanmış USR1 ve USR2 sinyalleri vardır.

+0

Ama bu önceden tanımlanmış. Sinyal numarası benzersiz değil, değil mi? – kingsmasher1

2

Bu tür şeyler için USR1 ve USR2'yi kullanabilirsiniz.

Eğer bu yeterli değilse, uygulamanızın harici uygulamaların mesaj gönderebileceği bir soketi dinleyerek davranış gibi bir öykünme taklit edebilirsiniz.

+0

Ancak bu durumda, bir sinyal işleyici ile kaydedemeyiz. Bilir miyiz? Çünkü bu sinyalin bir zamanlayıcı tarafından kullanılmasını istediğimi ve bu sinyalin, herhangi bir mevcut sinyalle çatışmamak için benzersiz olmasını istiyorum. Yani soket yöntemi uygulanabilir değildir. – kingsmasher1

+0

Programınızın tamamen içinde olması durumunda, bir sinyal kullanmanız gerekmez. Basit bir mesajlaşma sistemi uygulayabilir ve kullanabilirsiniz. Sinyaller süreçler arasındaki asenkron iletişim için kullanılır. –

+0

Noufal, bu bir POSIX zamanlayıcı tarafından kullanılamaz, timer_create. – kingsmasher1

4

Sen olarak, ne gibi kullanım için mevcuttur (bunlar normalde sabitler ama zamanında değerlendirilen fonksiyonlara genişletme makroları değildir) özel sinyaller :)

9

SIGRTMINSIGRTMAX aracılığıyla ile kendi çekirdek derlemek olabilir SIGUSR1 ve SIGUSR2. Önceden ek gerçek zamanlı kuyruk desteği var; İkincisi yok. Sadece kullanmak için birini seçin.

+0

Bu kabul edilen cevap olmuştur – Mawg

İlgili konular