{"id":16064697,"url":"https://github.com/eldruin/ipc-fdstream","last_synced_at":"2025-03-18T05:30:50.736Z","repository":{"id":144893933,"uuid":"3285001","full_name":"eldruin/IPC-FDStream","owner":"eldruin","description":"Inter-Process Communication with C++ STL-Like streams through file descriptors","archived":false,"fork":false,"pushed_at":"2018-08-30T18:01:07.000Z","size":7,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-16T05:29:04.195Z","etag":null,"topics":["c-plus-plus","interprocess-communication","streams"],"latest_commit_sha":null,"homepage":"https://blog.eldruin.com/inter-process-communication-pipe-fork-cpp-stl-like-streams/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eldruin.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2012-01-27T18:25:41.000Z","updated_at":"2021-12-23T16:49:38.000Z","dependencies_parsed_at":"2023-10-20T20:50:59.360Z","dependency_job_id":null,"html_url":"https://github.com/eldruin/IPC-FDStream","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2FIPC-FDStream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2FIPC-FDStream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2FIPC-FDStream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eldruin%2FIPC-FDStream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eldruin","download_url":"https://codeload.github.com/eldruin/IPC-FDStream/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243902855,"owners_count":20366370,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","interprocess-communication","streams"],"created_at":"2024-10-09T05:09:11.116Z","updated_at":"2025-03-18T05:30:50.334Z","avatar_url":"https://github.com/eldruin.png","language":"C++","readme":"This is a basic example of inter-process communication\nusing fork() and pipe() in C++\n\nIncludes an example of creating a C++ stream from a file descriptor\nand how to read/write from/to it using \u003c\u003c and \u003e\u003e operators\n\nNeeds GCC's libstdc++ and a POSIX environment\n\nUsage:\n\t$ make\n\t$ ./parent\n\nOutput:\n\tParent: I'll send the child a message.\n\tParent: Child just said through stdout:\n\t\t\"Program: I've received: 'Hello Child!'\"\n\tParent: Child just said through stderr:\n\t\t\"Program: This is the error stream!\"\n\n\nThe scenario is: A parent process wants to handle another program’s\ninput and output streams, a process-level wrapper.\n\nSo the example is: A parent process forks into another child\nprocess. The parent sends the child a message, the child receives it\nand outputs it to the parent to show the communication works just\nfine.\n\nThe forked process calls the program we want to control. Which in this\ncase is the easiest C++ program ever: Just reads a line from the\nstandard input and outputs a message containing the line just read\nthrough the standard output. In addition, another message is sent\nthrough the standard error stream.\n\nFurther explanation:\nhttps://blog.eldruin.com/inter-process-communication-pipe-fork-cpp-stl-like-streams/\n\nResources:\n     YoLinux Tutorial: Fork, Exec and Process control\n     Beginning Linux programming, Matthew \u0026 Stones, Wrox Press\n     The GNU C Library manual\n     The GNU C++ Library manual\n     fileno(3) on C++ Streams: A Hacker's Lament, Richard B. Kreckel\n\n\nAuthor: Diego Barrios Romero\nPublic domain Copyleft 2011\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feldruin%2Fipc-fdstream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feldruin%2Fipc-fdstream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feldruin%2Fipc-fdstream/lists"}