Skip to content

Instantly share code, notes, and snippets.

zones:
- zone: egym.coffee
description: Test zone.
ttl: 300
templates:
- gmail
- website
names:
- name: '@'
texts:
#include <unistd.h>
#include <sys/types.h>
int main(int argc, char *argv[]) {
pid_t pid = fork();
if (pid == 0) {
// child being lazy
sleep(30);
return 0;
}
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(int argc, char *argv[]) {
pid_t pid = fork();
if (pid == 0) {
// child exits immediately
return 0;
}
#include <unistd.h>
int main(int argc, char *argv[]) {
// wait
sleep(10);
// exit ok
return 0;
}
#include <time.h>
int main(int argc, char *argv[]) {
// run for 10 seconds
time_t end = time(0) + 10;
// do something
volatile int i;
while (time(0) < end) {
i++;
#include <unistd.h>
#include <sys/types.h>
int main(int argc, char *argv[]) {
pid_t pid = fork();
if (pid == 0) {
// child 1 migrates to a new session
setsid();
pid_t pid2 = fork();
if (pid2 == 0) {
func main() {
// read metadata
metadataChan := make(chan *line)
go reader("metadata.csv", metadataChan)
// read strength set IDs
strengthSetChan := make(chan *line)
go reader("strength_sets.csv", strengthSetChan)
// join the two data streams
func joiner(metadata, setIDs <-chan *line, out chan<- *line) {
defer close(out) // close channel on return
si := &line{}
for md := range metadata {
sep := ","
// add matching strength set (if left over from previous iteration)
if si.id == md.id {
md.restOfLine += sep + si.restOfLine
sep = " "
func reader(fname string, out chan<- *line) {
defer close(out) // close channel on return
// open the file
file, err := os.Open(fname)
if err != nil {
log.Fatalf("open: %v", err)
}
defer file.Close()
type line struct {
id int
restOfLine string
}