Coder Social home page Coder Social logo

bgipc's Introduction

Beej's Guide to Interprocess Communication

This is the source for Beej's Guide to Interprocess Communication

If you merely wish to read the guide, please visit the Beej's Guide to Interprocess Communication website.

This is here so that Beej has everything in a repo and so translators can easily clone it.

Build Instructions

Dependencies

Mac dependencies install (reopen terminal after doing this):

xcode-select --install                  # installs make
brew install python                     # installs Python3
brew install pandoc
brew install mactex                     # installs XeLaTeX
brew tap homebrew/cask-fonts
brew install font-liberation            # installs Liberation fonts

You might have to add something like this to your path to find xelatex:

PATH=$PATH:/usr/local/texlive/2021/bin/universal-darwin

Dependency: Build System

This depends on an external repo to build: Beej's Guide Build System for Pandoc.

You'll want to clone that repo as a sibling to this one:

mystuff-->bggit
      \-->bgbspd

The Makefiles here will look for the build system there.

You can override the bgbspd directory before running make like this:

export BGBSPD_BUILD_DIR=/some/path/to/bgbspd

Build

  1. Type make all from the top-level directory.

    If you have Gnu Make, it should work fine. Other makes might work as well. Windows users might want to check out Cygwin.

  2. Type make stage to copy all the build products and website to the stage directory.

  3. There is no step three.

You can also cd to the src directory and make.

make clean cleans, and make pristine cleans to "original" state.

To embed your own fonts in the PDFs, see the src/Makefile for examples.

The upload target in the root Makefile demonstrates the build steps for a complete release. You'll need to change the UPLOADDIR macro in the top-level Makefile to point to your host if you want to use that. You're free to upload whatever versions you desire individually, as well.

Pull Requests

Please keep these on the scale of typo and bug fixes. That way I don't have to consider any copyright issues when merging changes.

bgipc's People

Contributors

andportnoy avatar azhrei avatar beejjorgensen avatar corollari avatar lapkatre avatar pambrose avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

bgipc's Issues

Section 4 duplicated section

On the beej.us site, there is a rendering bug around section 4.2 (it duplicates the entire section except the code snippet, see screen shot below).
https://beej.us/guide/bgipc/html/split/pipes.html#the-search-for-pipe-as-we-know-it

Looks like line 46 of bgipc_part_0400_pipes.md has a missing closing square bracket. I balanced the brackets on this line and things looked as expected.

As a [flx[useless example|pipe1.c], the following program creates,

issue:
As a [flx[useless example|pipe1.c], the following program creates,
fix:
As a [flx[useless example|pipe1.c]], the following program creates,

image

image

bgipc_part_0500_fifos.md: `mknod` is used instead of `mkfifo`

I noticed that the guide promotes the use of mknod instead of mkfifo for creating the FIFOs, which contradicts the POSIX and the common advice I've seen. mkfifo isn't even mentioned as an alternative call.

Is there a specific reason, like difference in portability?

The POSIX standard states:

The mkfifo() function is preferred over this function for making FIFO special files.

The Linux manual for mknod also quotes POSIX.1-2001:

"The only portable use of mknod() is to create a FIFO-special file. If mode is not S_IFIFO or dev is not 0, the behavior of mknod() is unspecified." However, nowadays one should never use mknod() for this purpose; one should use mkfifo(3), a function especially defined for this purpose.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.