{"version":"1.0","provider_name":"Tom Barbette","provider_url":"https:\/\/perso.uclouvain.be\/tom.barbette","title":"Fork & Exec system calls to implement a shell - Tom Barbette","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"KFqxiUI5yu\"><a href=\"https:\/\/perso.uclouvain.be\/tom.barbette\/fork-exec-system-calls-to-implement-a-shell\/\">Fork &#038; Exec system calls to implement a shell<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/perso.uclouvain.be\/tom.barbette\/fork-exec-system-calls-to-implement-a-shell\/embed\/#?secret=KFqxiUI5yu\" width=\"600\" height=\"338\" title=\"&#8220;Fork &#038; Exec system calls to implement a shell&#8221; &#8212; Tom Barbette\" data-secret=\"KFqxiUI5yu\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/perso.uclouvain.be\/tom.barbette\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","description":"A shell, typically parse a command, then fork (duplicates itself). The duplicated process replaces itself using Execvp by the program described in the command The other process wait for the duplicated one to exit using waitpid. When that happens it prints the prompt again, ready for the next one to come. And the whole thing &hellip; Continue reading \"\""}