Mercurial > repo
view src/ploki/atechit.c @ 12508:335a2a849232 draft default tip
<wib_jonas> `` f=/hackenv/bin/dateu; >$f echo $\'#!/bin/bash\\nset -e\\nif (( 1 < $# )); then echo "dateu error: too many command-line arguments. Usage: dateu datetimestring"; exit 2; fi\\nexec date -u ${1:+-d "$1"} "+%Y-%m-%d %H:%M:%S.%3N %z %Z %B %-e %A %G-W%V-%u"\'; chmod a+x "$f"
author | HackEso <hackeso@esolangs.org> |
---|---|
date | Wed, 03 Jul 2024 18:15:24 +0100 |
parents | ac0403686959 |
children |
line wrap: on
line source
#include "zz.h" #include "atechit.h" #include "main.h" #include <stdio.h> #include <stdlib.h> enum {MAGIC = 23}; static size_t Aused; static void (*Afunc[MAGIC])(void); static void bah(void) { for (; Aused; Afunc[--Aused]()) ; } void atechit(void (*f)(void)) { if (Aused >= sizeof Afunc / sizeof *Afunc) { NOTREACHED; } Afunc[Aused++] = f; if (Aused == 1 && atexit(bah)) { fprintf(stderr, "%s: atexit(): error message\n", Prog); bah(); exit(EXIT_FAILURE); } }