01.12.2018

The Advent of Void: Day 1: tcc

tcc(1) is a small and fast C compiler that allows to run C source code as script. So when bash doesn’t cut it and python or ruby is too fancy, tcc may be what you want.

#include <stdio.h> int main() { printf("Hello %s

", argv[1]); return 0; }

Given this simple Hello World C script you can simply run it via the following call:

$ tcc -run hello.c Void Hello Void

After the -run <FILE> argument all following parameters will be passed to the script as argv .

tcc even supports shebangs so you’ll get the full scripting experience:

#!/usr/bin/tcc -run #include <stdio.h> int main(int argc, char *argv[]) { printf("Hello %s

", argv[0]); return 0; }

Afterwards, just like any other scripting language, add executable permission and call it:

$ chmod +x hello.c $ ./hello.c Void Hello Void

Unfortunately, tcc doesn’t cover the full C standard yet. For most small scripting like tasks tcc is more than enough.

You can find more informations about tcc on its website or on the tcc(1) manpage