![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Läsa från blockerande FIFO röret med skal script | Victorin | Shell-programmering och Skript | 4 | 05-08-2007 12:39 |
| Blockera en enda IP | Phobos | UNIX for Dummies Frågor & Svar | 4 | 04-28-2005 12:09 |
| blockering DHCP | byblyk | IP Nätverk | 2 | 03-16-2005 12:06 |
| Skola Blockering | Satine | IP Nätverk | 1 | 02-07-2005 05:07 |
| blockering domäner | tamemi | UNIX for Dummies Frågor & Svar | 1 | 04-16-2003 08:13 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Icke-blockerande pipe
Hej,
Skulle detta vara ett acceptabelt sätt att skapa en icke-blockerande rör. I grunden Jag vill skapa lite av en server klient båge. Denna kod skulle vara i servern, och jag vill inte behöva vänta på klienter att läsa innan vi går vidare till nästa kund. Ett problem jag kan se är om en kund lämnar / dör och aldrig läser ur röret (men jag i viss mån kan fälla / cleanup saker i klienter för det). # Tilldela fd 3 till röret echo "exec 3> myfifo & & echo 'en'> & 3 & & echo 'b'> & 3 & & echo 'c'> & 3 & & exec 3> & - "| på nu Chris. Senast redigerad av Neo, 02-09-2009 vid 05:25.. Orsak: bort själv främjande länk till ny medlem |
|
||||
|
En UNIX domain socket är huvudsakligen ett FIFO med extra egenskaper du vill ha - möjligheten för flera klienter att ansluta till en server. Se denna länk för detaljer.
|
|
||||
|
Den & & kommer att leda tanken att vänta innan du kör kommandot efter det, och någon av dem har inte, ingen av dem efter att det kommer att köras. & & Är ett villkorat, det är inte en bakgrund uttalande. Dessutom är det någon särskild anledning att strängen av kommandon är allt på en rad? Och vad är "eko exec" för, ni menade att detta skulle utan ekot?
Jag tror inte det finns något tillfälle försöker öppna den i ett rambeslut i tanken om du försöker att spara tid, eftersom skalet kommer att vänta för läsaren att öppna röret ändå. När den gör, kommer alla tre processerna får samma pipa, vilket jag betvivlar är vad du vill. varvid samtliga tre processer kommer att få kopior av samma pipa, inte köar. Denna typ av kod, däremot, kommer att vänta på röret, inleda en process, därefter omedelbart vänta på röret igen utan att invänta inlett processen för att avsluta: Kod:
echo a > fifo & echo b > fifo & echo c > fifo & |
|
||||
|
Corona688,
Tack för info. Citat:
Tack än en gång, Chris. |