QNX RTOS: PPS - рд▓реЛрдпрд╕рд▓реА рдХрдкрд▓ рдЗрдВрдЯрд░рд╡реНрдпреВ

QNX рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдиреЛрдЯреЛрдВ рдХреЗ рдЪрдХреНрд░ рдХрд╛ рдПрдХ рдФрд░ рд╕рд┐рд▓рд╕рд┐рд▓рд╛ред рдЖрдЬ рдореИрдВ рдлрд┐рд░ рд╕реЗ рдЗрдВрдЯрд░-рдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрдВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ - рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд / рд╕рджрд╕реНрдпрддрд╛ (рдкреАрдкреАрдПрд╕, рдПрдХ рдордЬрдмреВрдд рдкреНрд░рдХрд╛рд╢рди / рд╕рджрд╕реНрдпрддрд╛ рд╕реЗрд╡рд╛)ред рдореИрдВ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ QNX рдиреНрдпреВрдЯреНрд░рд┐рдиреЛ рдореЗрдВ рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ 6.5.0 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдкреАрдкреАрдПрд╕ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЛ рдорд╛рдЗрдХреНрд░реЛрдХрд░реНрдиреЗрд▓ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдмрдВрдзрдХ, рдЬрд┐рд╕рдХреЗ рдирд╛рдо рдмреЛрд▓ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрдВрддреНрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

PPS рд╕реЗрд╡рд╛ рдЗрддрдиреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛ рдЧрдИ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдФрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдорд╛рд░реНрдЯ рдПрдирд░реНрдЬреА , QNX рдХрд╛рд░ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмреНрд▓реИрдХрдмреЗрд░реА рдкреНрд▓реЗрдмреБрдХ рдЯреИрдмрд▓реЗрдЯред

рдЗрд╕ рдиреЛрдЯ рдореЗрдВ рд╣рдо рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ PPS рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВрдЧреЗ, рдпрд╣ рддрдХрдиреАрдХ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдЧрд╛, рдФрд░ рдмрд╣реБрдд рд╣реА рдЕрдВрдд рдореЗрдВ рдпрд╣ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ PPS рдЕрдВрддрд░-рдХрд╛рд░реНрдп рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХреЗ рддрдВрддреНрд░ рдХреЗ рдмреАрдЪ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╣рд╛рдирдЧрд░реАрдп рд╣реИ, рдФрд░ рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЗрд╕реЗ "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

PPS рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣реИ?


рдкреАрдкреАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрдкрдХреЛ рдХрдИ рдШрдЯрдХреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд┐рдП рдмрд┐рдирд╛ рдФрд░ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рддрдХрдиреАрдХреЛрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд╛рд╕ рдЯреАрдореЗрдВ рдРрд╕реЗ рдШрдЯрдХреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рдирд╛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░реЗрдВрдЧреЗред

рдЕрдВрддрд░-рдХрд╛рд░реНрдп рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдкрд░ PSS рдХреЗ рдореБрдЦреНрдп рд▓рд╛рдн:


рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЕрдЧрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдм рддреАрди рдпрд╛ рдЪрд╛рд░ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдкреАрдкреАрдПрд╕ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рд╣реА рдХрджрдо рд╣реЛрдЧрд╛ред

PPS рдХреНрдпрд╛ рд╣реИ?


рдкреАрдкреАрдПрд╕ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдпреЗ рдРрд╕реА рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрдирдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рджрд┐рдЦрд╛рдИ рднреА рдирд╣реАрдВ рджреЗрддреЗ, рд▓реЗрдХрд┐рди рд╡рд╣реАрдВ рд░рд╣рддреЗ рд╣реИрдВред рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдпрджрд┐ POSIX рдкрд╣реБрдВрдЪ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЗрд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ рддреЛ рдХреЛрдИ рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝ рдФрд░ рд▓рд┐рдЦ рд╕рдХрддреА рд╣реИред рдЖрдк рдкреАрдкреАрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ read() , write() , рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрднрд╡рддрдГ рдкрд░реНрдпрд╛рдкреНрдд рдердХрд╛рдКрдкрди, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрднреНрдпрд╛рд╕ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ pps рдкреНрд░рдмрдВрдзрдХ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 # pps 

рдмреЗрд╢рдХ, рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдкрд╛рд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡рд╣рд╛рдВ рдХреБрдЫ рднреА рдореМрд▓рд┐рдХ рдирд╣реАрдВ рд╣реИред рд╣рд░ рдХреЛрдИ рд╕рдВрджрд░реНрдн рдЧрд╛рдЗрдб рдореЗрдВ рд╡рд┐рд╡рд░рдг рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИред рдмрд╛рдж рдХреЗ рд╕рднреА рдЕрднреНрдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ pps рдкреНрд░рдмрдВрдзрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЕрдм рдЪрд▓реЛ рдХреБрдЫ рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдВрдХрдбрд╝рд╛ :

 # touch /fs/pps/figure 

рд╡рд╣ рд╕рдм рд╣реИред рдЕрдм рд╡рд╕реНрддреБ рдХреЛ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 # cat /fs/pps/figure @figure 

рддреЛ рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрднреА рддрдХ рдХреЛрдИ рдЧреБрдг рдирд╣реАрдВ рд╣реИред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝реЙрд░реНрдо :

 # echo "form::square" >> /fs/pps/figure # cat /fs/pps/figure @figure form::square 

рдЖрдк рдПрдХ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рдВрдЧ :

 # echo "color::red" >> /fs/pps/figure # cat /fs/pps/figure @figure color::red form::square 

рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ, рдирд┐рдореНрди рдХрдорд╛рдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдЧрд╛:

 # echo "color::green" > /fs/pps/figure # cat /fs/pps/figure @figure color::green 

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ> рдФрд░> рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдкрддрд╛ рд╣реЛрдЧрд╛ред рдХрд┐рд╕реА рднреА рд╕рдВрдкрддреНрддрд┐ рдпрд╛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдХрдИ рдЧреБрдгреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдмрджрд▓рд╛ рдпрд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 # echo "color::blue\nform::circle" >> /fs/pps/figure # cat /fs/pps/figure @figure color::blue form::circle 

рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рдХрд┐рд╕реА рднреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 # echo "-color" >> /fs/pps/figure # cat /fs/pps/figure @figure form::circle 

рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 # rm /fs/pps/figure # cat /fs/pps/figure /fs/pps/figure: No such file or directory 

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣реЛрдмреЗ рдХреЗ рдкрд╛рдардХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдЕрд░реНрде рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рд╛рдХреНрд╖рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рдФрд░ рдЕрдм, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдкреАрдкреАрдПрд╕ рдирд╛рдо рдХрд╛ рдЕрд░реНрде рд╕рдордЭрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ - рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд / рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВред

рд╕реНрдерд╛рдпреА (рд╕реНрдерд╛рдпреА)


рд░реИрдо рдореЗрдВ рд╕реНрдЯреЛрд░реЗрдЬ рдбреЗрдЯрд╛ рдХреЗ рджреМрд░рд╛рди рдкреАрдкреАрдПрд╕ рд╕реЗрд╡рд╛ред рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рдкреАрдкреАрдПрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЧреИрд░-рд╡рд╛рд╖реНрдкрд╢реАрд▓ рднрдВрдбрд╛рд░рдг рдореЗрдВ рд░рд┐рдмреВрдЯ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛рдПред рдЖрдорддреМрд░ рдкрд░, рдбреЗрдЯрд╛ рдХреЛ рдбрд┐рд╕реНрдХ рдпрд╛ рдлреНрд▓реИрд╢ рдореЗрдореЛрд░реА рдкрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдбреЗрд╡рд▓рдкрд░ рдЧреИрд░-рдорд╛рдирдХ рдореАрдбрд┐рдпрд╛ рдкрд░ рдбреЗрдЯрд╛ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ, pps рдкреНрд░рдмрдВрдзрдХ рдЧреИрд░-рд╡рд╛рд╖реНрдкрд╢реАрд▓ рднрдВрдбрд╛рд░рдг рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред -l рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рд░рд┐рдХрд╡рд░реА рдореЛрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


рдкреНрд░рдХрд╛рд╢рди (рдкреНрд░рдХрд╛рд╢рди)


рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ 1 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд▓рд┐рдЦрдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рдиреЗ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 sprintf( ppsobj, "-color\n" ); // Delete the "color" attribute write( ppsobj-fd, ppsobj, strlen( ppsobj ) ); 

рд╢рд╛рдпрдж рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдХ рд╕рд╛рде рд▓рд┐рдЦрдиреЗ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХреЛ рдЦреЛрд▓ рд╕рдХрддреА рд╣реИрдВред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред

рд╕рджрд╕реНрдпрддрд╛ рд▓реА рдЬрд╛ рд░рд╣реА (рд╕рджрд╕реНрдпрддрд╛)


рд╣рдо рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рднреА рдирд╣реАрдВред рдЖрдкрдХреЛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкреАрдкреАрдПрд╕ рдЗрддрдирд╛ рд╕рд░рд▓ рдФрд░ рддреБрдЪреНрдЫ рд╣реИред рд╣рд╛рдВ, рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдПрдХ рдХреБрддреНрддреЗ рдХреА рдЕрдлрд╡рд╛рд╣ рд╣реИред рдФрд░ рд╡рд╣ рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрд╢рди рдореЗрдВ рдареАрдХ-рдард╛рдХ рд╣реИред рд╕рджрд╕реНрдпрддрд╛ рдХреА рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рд╣реИрдВ, рдЬреИрд╕реЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реАрдбрд┐рдВрдЧ рдФрд░ рдбреЗрд▓реНрдЯрд╛ рдореЛрдб рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдирд╛ред рдЗрди рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рдмреНрд▓реЙрдХ рдкрдврд╝реЗрдВ

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, PPS рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝рдирд╛ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд╣реИред рдпрд╣ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдорд╛рдирдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВред рд╕рдордп рдкрд░ рдврдВрдЧ рд╕реЗ рд╡рд╕реНрддреБ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ (рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рд╕рдлрд▓ рдирд╣реАрдВ) рдкрдврд╝рдирд╛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реИред рд░реАрдб рдореЛрдб рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдкреАрдкреАрдПрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдХреНрд╡реЙрд▓рд┐рдлрд╛рдпрд░ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ ? рд░реБрдХреЛ ред

рдЖрдЗрдП рдПрдХ рдмреЛрд▓реНрдб рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рд╣рдо рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджреЛ рдХрдВрд╕реЛрд▓ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдлреЛрдЯреЙрди рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдпрджрд┐ рдкрд╛рда рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреБрдВрдЬреА рд╕рдВрдпреЛрдЬрдиреЛрдВ Ctrl + Alt + n рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ (рдпрд╣рд╛рдВ n рдирдВрдмрд░ 1, 2, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХреБрдВрдЬреА рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреБрдВрдЬреА F1, F2 рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП)ред рдФрд░ рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╡рд╕реНрддреБ рдмрдирд╛рдПрдВ:

 # echo "color::green" >> /fs/pps/figure 

рдФрд░ рджреВрд╕рд░реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдЗрд╕реЗ рд░реАрдб рдореЛрдб рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдореЗрдВ рдЦреЛрд▓реЗрдВ:

 # cat /fs/pps/figure?wait @figure color::green 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ cat рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдкрдврд╝рдиреЗ рд╕реЗ рдЕрд╡рд░реБрджреНрдз рд╣реИред рдЕрдм рдкрд╣рд▓реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╣рдо рдХреБрдЫ рдХрдорд╛рдВрдб рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ:

 # echo color::red >> /fs/pps/figure # echo color::white >> /fs/pps/figure 

рджреВрд╕рд░реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдЖрдЙрдЯрдкреБрдЯ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ:

 @figure color::red @figure color::white 

рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдлреЛрдЯреЙрди рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рджреЛ рдХрдВрд╕реЛрд▓ рдЖрдкрдХреА рдЖрдВрдЦреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдк рд╕рд╛рдорд╛рдиреНрдп Ctrl + C рдХреЗ cat рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдордХреНрдЦреА рдкрд░ рд░реАрдбрд┐рдВрдЧ рдореЛрдб рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд C рдХреЛрдб рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

 flags = fcntl( fd, F_GETFL ); flags |= O_NONBLOCK; fcntl( fd, F_SETFL, flags ); 

рдирдИ рдбреЗрдЯрд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛

рд╕рдордп рдкрд░ рдврдВрдЧ рд╕реЗ рдкреАрдкреАрдПрд╕ рд╕реЗ рдирдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рджреЛ рд╕рдВрднрд╛рд╡рдирд╛рдПрдБ рд╣реИрдВ:


select() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╕рджрд╕реНрдпрддрд╛ рдореЛрдб

рджреЛ рд╕рджрд╕реНрдпрддрд╛ рдореЛрдб рд╣реИрдВ:


рдЫрд╡рд┐
рдЕрдВрдЬреАрд░ред 1. рдкреВрд░реНрдг рдФрд░ "рдбреЗрд▓реНрдЯрд╛" рдкреАрдкреАрдПрд╕ рд╕рджрд╕реНрдпрддрд╛ рдореЛрдбред

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреВрд░реЗ рдореЛрдб рдореЗрдВ рдкреВрд░реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдореЗрд╢рд╛ рдЙрд╕рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд╕рдордп рдореМрдЬреВрдж рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ рд░реАрдбрд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдПрдХ рд╣реА рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдХрдИ рдмрд╛рд░ рдмрджрд▓рд╛ рдЧрдпрд╛, рддреЛ рдЖрдЦрд┐рд░реА рдмрджрд▓рд╛рд╡ рдкрдврд╝рд╛ рдЬрд╛рдПрдЧрд╛ред

"рдбреЗрд▓реНрдЯрд╛" рдореЛрдб рдореЗрдВ, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддред рдХреБрдЫ рднреА рдирд╣реАрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ 2 ред "рдбреЗрд▓реНрдЯрд╛" рдореЛрдб рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдирд╛рдо рдХреЗ рдмрд╛рдж рдбреЗрд▓реНрдЯрд╛ рдХреНрд╡рд╛рд▓рд┐рдлрд╛рдпрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдбреЗрд▓реНрдЯрд╛ рдореЛрдб рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдХрдВрд╕реЛрд▓ рдкрд░, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ:

 # echo "color::red\nform::square" >> /fs/pps/figure 

рджреВрд╕рд░реЗ рдХрдВрд╕реЛрд▓ рдкрд░, рдЗрд╕реЗ "рдбреЗрд▓реНрдЯрд╛" рдореЛрдб рдореЗрдВ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░реЗрдВ:

 # cat /fs/pps/figure?delta,wait @figure color::red form::square 

рд░рдВрдЧ рдмрджрд▓реЗрдВ:

 # echo "color::green" >> /fs/pps/figure 

рд╣рдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ:

 @figure color::green 

рд╣рдо рдлрд╝реЙрд░реНрдо рдмрджрд▓рддреЗ рд╣реИрдВ:

 # echo "form::circle" >> /fs/pps/figure 

рд╣рдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ:

 @figure form::circle 

рд╣рдо рдПрдХ рд╕рд╛рде рджреЛ рдЧреБрдг рдмрджрд▓рддреЗ рд╣реИрдВ:

 # echo "color::red\nform::square" >> /fs/pps/figure 

рдФрд░ рд╣рдореЗрдВ рдПрдХ рдмрджрд▓рд╛рд╡ рдорд┐рд▓реЗрдЧрд╛:

 @figure color::red form::square 

рд╕рд░реНрд╡рд░ рдореЛрдб


рдкреАрдкреАрдПрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЬреЛ рдкреНрд░рдХрд╛рд╢рдХреЛрдВ рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рд╣реИред рдЙрдиреНрд╣реЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреНрд░рд╛рд╣рдХ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдореЛрдб рдореЗрдВ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдХреНрд╡рд╛рд▓рд┐рдлрд╛рдпрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╢реЗрд╖ рдЧреНрд░рд╛рд╣рдХ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рддрд░рд╣ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдпрджрд┐ рдХреЛрдИ рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдЧреНрд░рд╛рд╣рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (рд╕рдВрдЦреНрдпрд╛) рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдореЗрдВ рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 @figure.1234 

рдпрджрд┐ рдХреЛрдИ рдирдпрд╛ рдЧреНрд░рд╛рд╣рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рдкреНрд▓рд╕ рдЪрд┐рдиреНрд╣ (+) рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИ:

 +@figure.1234 

рдПрдХ рд╕рдорд╛рди рд╕реВрдЪрдирд╛ рдЖрддреА рд╣реИ рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдЗрдирд╕ рд╕рд╛рдЗрди (-) рдХреЗ рд╕рд╛рдеред рдпрджрд┐ рд╕рд░реНрд╡рд░ рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреАред рдЕрдВрдЬреАрд░ рдореЗрдВред рдЪрд┐рддреНрд░ 2 рдореЗрдВ рд╕рд░реНрд╡рд░ рдФрд░ PPS рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЫрд╡рд┐
рдЕрдВрдЬреАрд░ред 2. рдкреАрдкреАрдПрд╕ рд╕рд░реНрд╡рд░ рдореЛрдбред

рдХреЗрд╡рд▓ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдСрдкрд░реЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдмреНрдпрд╛рдЬ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реА рдореЗрдВред

рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкреАрдкреАрдПрд╕ рд╕рдкреЛрд░реНрдЯ


QNX рдореЗрдВ рдореБрдЦреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕реА рд╣реИред рд▓реЗрдХрд┐рди рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рд╡реЗ рдкреАрдкреАрдПрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗ? рд╣рд╛рдБ, рд╡реЗ рдХрд░реЗрдВрдЧреЗред рдПрдбреЛрдм рдлреНрд▓реИрд╢ рдЬреИрд╕реЗ рд░рдгрдиреАрддрд┐рдХ рдордВрдЪ рдХреЗ рд▓рд┐рдП, рдкреАрдкреАрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдФрд░ рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдмрддрд╛рдИ рдЧрдИ рд╣рд░ рдЪреАрдЬ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреАрдкреАрдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрд▓рдиреЗ, рдЙрдирд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрд░рд╛рдорджрд╛рдпрдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ select() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣реА рд╕рдм рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВред рдФрд░ рдЗрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рджреНрд╡рд╛рд░рд╛ред рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛрддрд╛? рд╣рд╛рдВ, рдХреБрдЫ рднреА рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдЖрдЗрдП рдирд┐рдореНрди рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рд╛рд╣рд╕рдкреВрд░реНрд╡рдХ рджреЛ PPS рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ:

 # echo "form::triangle\ncolor::green" >> /fs/pps/figure # echo verb::runs >> /fs/pps/action 

рдХрд┐рд╕реА рдЕрдиреНрдп рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдирд┐рдореНрди рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ:

 #!/usr/qnx650/host/qnx6/x86/usr/bin/python import select action = { "verb" : "stop" } figure = { "form" : "circle", "color" : "black" } sentence = { "action" : action, "figure" : figure } f1 = open('/fs/pps/figure?delta', 'r') f2 = open('/fs/pps/action?delta', 'r') while 1: r, w, e = select.select( [f1, f2], [], [] ) for f in r: d = f.read().split() for a in d[1:]: k, v = a.split( "::" ) sentence[ d[0][1:] ][k] = v print figure["color"], figure["form"], action["verb"] 

рдкрд╣рд▓реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ, рд╣рдо рдЖрдХреГрддрд┐ рдФрд░ рдПрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рд╣рдо рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред рдЕрдкрдиреЗ рдЖрд╕рдкрд╛рд╕ рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреИрд╕рд╛ рдХреБрдЫ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:

 green triangle runs green circle runs blue circle runs white square runs white square stops 

рдкрд╛рдпрдерди рд▓рд┐рдкрд┐ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдкреАрдкреАрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИред рдореВрд░реНрдЦ рд╕реЗ рдХреЛрдИ рддрдерд╛рдХрдерд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд┐рддрдирд╛ рд╕рд░рд▓ рдирд┐рдХрд▓рд╛ред рд╡рд╛рд╣, рдЖрдкрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рдирд┐рдЬреА рддреМрд░ рдкрд░, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреАрдкреАрдПрд╕ рддрдХрдиреАрдХ рдкрд╕рдВрдж рдереАред

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдордЧреНрд░реА


  1. рдкреАрдкреАрдПрд╕ рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА
  2. рд╕рд╕реНрдЯреЗрдиреЗрдмрд▓ QNX рдкрдмреНрд▓рд┐рд╢ / рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рд╕рд░реНрд╡рд┐рд╕
  3. QNX рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд / рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ рдбреЗрд╡рд▓рдкрд░ рдХреА рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛


1 рдпрд╣ рд╕рд░реНрд╡рд░ рдореЛрдб рдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЬрд┐рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

2 рдпрджрд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд░рд┐рдмреВрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдбреЗрд▓реНрдЯрд╛ рдореЛрдб рдореЗрдВ рдЬрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЦреЛ рдЬрд╛рдПрдЧрд╛ред

Source: https://habr.com/ru/post/In129196/


All Articles