{"id":1420,"date":"2025-10-18T06:24:48","date_gmt":"2025-10-18T06:24:48","guid":{"rendered":"https:\/\/help.peacedoorball.blog\/nl\/?p=1420"},"modified":"2025-10-18T06:24:48","modified_gmt":"2025-10-18T06:24:48","slug":"hoe-je-begrijpt-wat-een-pijp-is-in-de-computerwereld","status":"publish","type":"post","link":"https:\/\/help.peacedoorball.blog\/nl\/hoe-je-begrijpt-wat-een-pijp-is-in-de-computerwereld\/","title":{"rendered":"Hoe je begrijpt wat een pijp is in de computerwereld"},"content":{"rendered":"<p>Je weet waarschijnlijk wel wat een pijp in de echte wereld is: het is in feite een leiding die dingen van de ene naar de andere plek transporteert. Denk aan een tuinslang die water van de kraan naar je sproeier pompt. In de techniek is het vrijwel hetzelfde: de output van het ene apparaat wordt omgeleid als input voor het andere. Geen hogere wiskunde, maar het is wel vreemd hoe het dingen zo flexibel maakt als je het eenmaal onder de knie hebt.<\/p>\n<h2>Inter-procescommunicatie<\/h2>\n<p>Pipes zijn een behoorlijk aantal toepassingen in de computerwereld, waarvan een van de belangrijkste is om verschillende processen met elkaar te laten communiceren. Moderne pc&#8217;s gebruiken virtueel geheugen \u2013 wat betekent dat processen niet langer zomaar naar elkaars geheugenadressen mogen kijken. In plaats daarvan krijgt elk proces zijn eigen virtuele adresruimte. Pipes komen hierbij goed van pas; ze laten processen gegevens delen zonder hun geheugen bloot te stellen, net als een beveiligde mailbox.<\/p>\n<p>In principe fungeert een pipe als een eenrichtingskanaal voor data. Voor tweerichtingsverkeer heb je twee pipes nodig die beide kanten opgaan. Op deze manier schrijft het ene proces data naar de pipe en leest het andere deze. Als je er maar \u00e9\u00e9n instelt, is de communicatie eenrichtingsverkeer \u2013 je kunt het makkelijk verpesten als je niet oppast. Bovendien open je in C een pipe met de <code>pipe()<\/code>opdracht en splits je vervolgens een proces, zodat het kind de pipe erft. Houd er rekening mee dat alleen processen met toegang de pipe kunnen lezen of schrijven \u2013 dus geen stiekeme buitenstaanders.<\/p>\n<p>Let op: Omdat pipes geheugengebaseerde FIFO-stromen zijn, zijn gegevens verdwenen zodra ze zijn gelezen.(Daarom heb je vaak twee pipes nodig voor tweerichtingscommunicatie \u2013 zodat je niet vastloopt in een verzend-ontvangstlus.) Soms kan het bij bepaalde configuraties vreemd zijn: begin met \u00e9\u00e9n aanpak en als het lijkt vast te lopen, probeer dan te rommelen met de timing of wat vertragingen toe te voegen. Ik weet niet zeker waarom het werkt, maar het werkt.<\/p>\n<h2>Pijpen op de opdrachtregel<\/h2>\n<p>Hier wordt het interessant. Pipes draaien niet alleen om geheugen, ze zijn ook een krachtige manier om commando&#8217;s aan elkaar te koppelen. Stel je voor: je wilt alle namen uit een bestand halen, ze alfabetisch sorteren en vervolgens dubbele namen verwijderen, allemaal in \u00e9\u00e9n keer. In plaats van het stap voor stap te doen, kun je commando&#8217;s aan elkaar koppelen.<\/p>\n<p>In Linux bestaat de basissyntaxis uit het pijpsymbool <strong>|<\/strong>. U kunt bijvoorbeeld het volgende uitvoeren:<\/p>\n<pre><code>cat &lt;filename&gt; | sort | uniq<\/code><\/pre>\n<p>Dit betekent: neem de uitvoer van <code>cat &lt;filename&gt;<\/code>, voer deze in <code>sort<\/code>, en stuur die vervolgens door naar <code>uniq<\/code>. De uitvoer die je krijgt, bestaat uit allemaal unieke, gesorteerde namen. Let op: het pijpsymbool lijkt in sommige lettertypen veel op een hoofdletter &#8220;i&#8221; of een kleine letter &#8220;L&#8221;, dus let daar op. Het onderscheidt zich ook van andere symbolen doordat het een kleine splitsing in het midden heeft.<\/p>\n<p>Nog een opmerking: deze opdrachten zijn superhandig omdat ze in een keten werken, dus je hebt geen tijdelijke bestanden of extra stappen nodig. De gegevens worden rechtstreeks tussen opdrachten gestreamd, wat tijd bespaart en alles overzichtelijk houdt.<\/p>\n<h2>Conclusie<\/h2>\n<p>Kortom, een pipe is in principe een manier om processen of commando&#8217;s met elkaar te verbinden, zodat ze direct gegevens kunnen delen. Of het nu gaat om processen die intern met elkaar communiceren of om commando&#8217;s aan elkaar te koppelen in de terminal, pipes maken het flexibel. Onthoud: het pipe-symbool <strong>|<\/strong> is je vriend om commando&#8217;s te combineren en je leven gemakkelijker te maken in Linux of andere opdrachtregelomgevingen. Soms is het even puzzelen, vooral als de gegevens niet netjes worden doorgestuurd, maar over het algemeen zijn pipes behoorlijk krachtig als je er eenmaal mee overweg kunt.<\/p>\n<h2>Samenvatting<\/h2>\n<ul>\n<li>U kunt buizen zien als digitale slangen die processen of opdrachten met elkaar verbinden.<\/li>\n<li>Ze worden gebruikt voor veilige, effici\u00ebnte communicatie tussen processen, vooral met virtueel geheugen.<\/li>\n<li>In de terminal worden opdrachten met behulp van pipes aan elkaar gekoppeld, bijvoorbeeld <code>cat &lt;file&gt; | sort | uniq<\/code>.<\/li>\n<li>Let op de symbolen die lijken op pijpsymbolen: het is een verticale lijn met een splitsing, geen letter of cijfer.<\/li>\n<li>Wanneer u vertrouwd raakt met leidingen, kunt u veel taken stroomlijnen. U bespaart tijd en hebt geen extra bestanden nodig.<\/li>\n<\/ul>\n<h2>Afronding<\/h2>\n<p>Over het algemeen zijn pipes een behoorlijk handig onderdeel van de Linux-toolkit \u2014 een beetje ondergewaardeerd totdat je beseft hoeveel handmatige inspanning ze besparen. Ze zorgen ervoor dat gegevens soepel tussen opdrachten of processen stromen, wat essentieel is wanneer je meerdere taken tegelijk uitvoert. Verwacht wat trial-and-error om erachter te komen hoe alles precies in elkaar zit, maar zodra het klikt, is het een game-changer. Hopelijk voorkomt dit dat iemand het wiel opnieuw hoeft uit te vinden of vastloopt met kleine klusjes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je weet waarschijnlijk wel wat een pijp in de echte wereld is: het is in feite een leiding die dingen van de ene naar de<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1420","post","type-post","status-publish","format-standard","hentry","category-hulp"],"_links":{"self":[{"href":"https:\/\/help.peacedoorball.blog\/nl\/wp-json\/wp\/v2\/posts\/1420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/help.peacedoorball.blog\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/help.peacedoorball.blog\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/help.peacedoorball.blog\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/help.peacedoorball.blog\/nl\/wp-json\/wp\/v2\/comments?post=1420"}],"version-history":[{"count":0,"href":"https:\/\/help.peacedoorball.blog\/nl\/wp-json\/wp\/v2\/posts\/1420\/revisions"}],"wp:attachment":[{"href":"https:\/\/help.peacedoorball.blog\/nl\/wp-json\/wp\/v2\/media?parent=1420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/help.peacedoorball.blog\/nl\/wp-json\/wp\/v2\/categories?post=1420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/help.peacedoorball.blog\/nl\/wp-json\/wp\/v2\/tags?post=1420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}