Articles tagged "c" 2024-12-20 Rules to avoid common extended inline assembly mistakes 2024-10-07 Windows dynamic linking depends on the active code page 2024-09-04 Giving C++ std::regex a C makeover 2024-07-31 Deep list copy: More than meets the eye 2024-05-25 Arenas and the almighty concatenation operator 2024-05-24 Guidelines for computing sizes and subscripts 2024-04-14 Speculations on arenas and custom strings in C++ 2024-03-05 Protecting paths in macro expansions by extending UTF-8 2024-02-05 An improved chkstk function on Windows 2024-01-28 Two handy GDB breakpoint tricks 2023-12-17 So you want custom allocator support in your C library 2023-10-08 My personal C coding style as of late 2023 2023-10-05 A simple, arena-backed, generic dynamic array for C 2023-09-30 An easy-to-implement, arena-friendly hash map 2023-09-27 Arena allocator tips and tricks 2023-08-27 How to link identical function names from different DLLs 2023-08-23 Everything you never wanted to know about Win32 environment blocks 2023-07-31 "Once" one-time concurrent initialization with an integer 2023-06-26 Solving "Two Sum" in C with a tiny hash table 2023-05-31 Hand-written Windows API prototypes: fast, flexible, and tedious 2023-04-29 My favorite C compiler flags during development 2023-03-23 Practical libc-free threading on Linux 2023-02-15 CRT-free in 2023: tips and tricks 2023-02-13 Let's implement buffered, formatted output 2023-02-12 Let's write a setjmp 2023-02-11 My review of the C standard library in practice 2023-01-18 u-config: a new, lean pkg-config clone 2023-01-08 SDL2 common mistakes and how to avoid them 2022-12-18 QOI is now my favorite asset format 2022-10-12 I solved the Dandelions paper-and-pencil game 2022-10-05 How to build a WaitGroup from a 32-bit integer 2022-10-03 Illuminating synchronization edges for ThreadSanitizer 2022-08-08 The quick and practical "MSI" hash table 2022-07-31 My new debugbreak command 2022-06-26 Assertions should be more debugger-oriented 2022-05-22 My take on "where's all the code" 2022-05-14 A lock-free, concurrent, generic queue in 32 bits 2022-04-30 Luhn algorithm using SWAR and SIMD 2022-03-13 A flexible, lightweight, spin-lock barrier 2022-03-07 Compressing and embedding a Wordle word list 2022-02-18 The wild west of Windows command line parsing 2021-12-31 A new protocol and tool for PNG file attachments 2021-12-30 Some sanity for C and C++ development on Windows 2021-12-04 Fast CSV processing with SIMD 2021-09-15 OpenBSD's pledge and unveil from Python 2021-09-14 Billions of Code Name Permutations in 32 bits 2021-08-21 Test cross-architecture without leaving home 2021-07-30 strcpy: a niche function you don't need 2021-06-29 More DLL fun with w64devkit: Go, assembly, and Python 2021-05-31 How to build and use DLLs on Windows 2021-03-11 A guide to Windows application development using w64devkit 2021-02-08 Well-behaved alias commands on Windows 2021-01-30 Single-primitive authenticated encryption for fun 2020-12-31 State machines are wonderful tools 2020-11-24 You might not need machine learning 2020-11-17 Improving on QBasic's Random Number Generator 2020-10-19 I Solved British Square 2020-09-25 w64devkit: (Almost) Everything You Need 2020-09-04 Asynchronously Opening and Closing Files in Asyncio 2020-08-01 Conventions for Command Line Options 2020-06-29 Netpbm Animation Showcase 2020-05-15 w64devkit: a Portable C and C++ Development Kit for Windows 2020-05-04 How to Read UTF-8 Passwords on the Windows Console 2020-04-30 When Parallel: Pull, Don't Push 2019-12-29 Purgeable Memory Allocations for Linux 2019-12-09 Chunking Optimizations: Let the Knife Do the Work 2019-11-19 On-the-fly Linear Congruential Generator Using Emacs Calc 2019-11-15 Infectious Executable Stacks 2019-10-28 Legitimate-ish Use of alloca() 2019-10-27 Legitimate Use of Variable Length Arrays 2019-06-30 Go Slices are Fat Pointers 2019-04-30 Looking for Entropy in All the Wrong Places 2019-03-28 Fibers: the Most Elegant Windows API 2019-03-22 Endlessh: an SSH Tarpit 2019-01-25 The Day I Fell in Love with Fuzzing 2019-01-23 A JavaScript Typed Array Gotcha 2018-12-25 A Survey of $RANDOM 2018-11-21 Why Aren't There C Conferences? 2018-11-15 A JIT Compiler Skirmish with SELinux 2018-07-31 Prospecting for Hash Functions 2018-07-20 The Value of Undefined Behavior 2018-06-23 Intercepting and Emulating Linux System Calls with Ptrace 2018-06-10 Minimalist C Libraries 2018-05-27 When FFI Function Calls Beat Native C 2018-05-01 When the Compiler Bites 2018-04-13 Blast from the Past: Borland C++ on Windows 98 2018-03-27 A Crude Personal Package Manager 2018-02-07 Inspiration from Data-dependent Rotations 2017-11-03 Render Multimedia in Pure C 2017-10-06 A Branchless UTF-8 Decoder 2017-09-21 Finding the Best 64-bit Simulation PRNG 2017-09-15 Blowpipe: a Blowfish-encrypted, Authenticated Pipe 2017-09-07 Gap Buffers Are Not Optimized for Multiple Cursors 2017-08-20 A Tutorial on Portable Makefiles 2017-07-19 Integer Overflow into Information Disclosure 2017-07-02 Rolling Shutter Simulation in C 2017-06-21 Stack Clashing for Fun and Profit 2017-06-19 Building and Installing Software in $HOME 2017-05-03 The Adversarial Implementation 2017-04-27 Two Games with Monte Carlo Tree Search 2017-03-30 How to Write Portable C Without Complicating Your Build 2017-03-01 OpenMP and pwrite() 2017-02-14 Asynchronous Requests from Emacs Dynamic Modules 2017-01-21 Manual Control Flow Guard in C 2017-01-08 C Closures as a Library 2016-12-23 Relocatable Global Data on x86 2016-11-22 Portable Structure Access with Member Offset Constants 2016-11-15 Baking Data with Serialization 2016-11-13 Zero-allocation Trie Traversal 2016-11-05 Emacs, Dynamic Modules, and Joysticks 2016-10-27 An Array of Pointers vs. a Multidimensional Array 2016-10-07 Small-Size Optimization in C 2016-10-02 The Vulgarness of Abbreviated Function Templates 2016-09-23 Linux System Calls, Error Numbers, and In-Band Signaling 2016-09-09 Modifying the Middle of a zlib Stream 2016-09-05 Inspecting C's qsort Through Animation 2016-09-03 How to Read and Write Other Process Memory 2016-08-07 Automatic Deletion of Incomplete Output Files 2016-08-03 Appending to a File from Multiple Processes 2016-07-25 Const and Optimization in C 2016-06-13 Four Ways to Compile C for Windows 2016-05-30 You Can't Always Hash Pointers in C 2016-04-10 Mapping Multiple Memory Views in User Space 2016-03-31 Hotpatching a C Function on x86 2016-02-28 Calling the Native API While Freestanding 2016-01-31 Small, Freestanding Windows Executables 2015-10-14 Counting Processor Cores in Emacs 2015-09-15 Recovering Live Data with GDB 2015-07-10 Mandelbrot Set with SIMD Intrinsics 2015-06-06 Minimal OpenGL 3.3 Core Profile Demo 2015-05-15 Raw Linux Threads via System Calls 2015-03-19 A Basic Just-In-Time Compiler 2015-03-15 Goblin-COM 7DRL 2015 2015-02-17 Generic C Reference Counting 2014-12-23 Interactive Programming in C 2014-12-09 How to build DOS COM files with GCC 2014-10-21 C Object Oriented Programming 2014-10-12 Global State: a Tale of Two Bad C APIs 2014-09-18 The Billion Pi Challenge 2014-09-02 C11 Lock-free Stack 2014-08-29 Stabilizing C's Quicksort 2013-02-25 Fast Monte Carlo Method with JavaScript 2012-09-19 Revisiting an N-body Simulator 2012-07-30 A Few Tricky C Questions 2012-06-03 Perlin Noise With Octave, Java, and OpenCL 2012-04-23 Pseudo-terminals 2010-12-21 Pth and ncurses 2010-02-18 Function Pointers are Special 2009-04-20 A Not So Stupid C Mistake 2008-07-20 Sudoku Solver 2008-07-18 Variable Declarations and the C Call Stack 2008-01-29 The 3n + 1 Conjecture 2008-01-20 Optimizing, Multi-threading Brainfuck to C Converter 2007-10-01 Mandelbrot Set on a Cluster 2007-09-08 PNG Archiver - Share Files Within Images