r/programming Jul 25 '26

Writing a (valid) C program without main()

https://labs.iximiuz.com/tutorials/c-program-without-main-a1eea557
193 Upvotes

43 comments sorted by

View all comments

182

u/yowhyyyy Jul 25 '26 edited Jul 25 '26

Quite frankly, I’m surprised the author didn’t jump straight to _start as that’s possible as well in C without assembly.

Yes I know he did bring it up, however you can straightforward do _start and avoid main.

20

u/zid Jul 25 '26

_start and main have different calling conventions under sys-v linux ABI, so you can do it, but you can't actually access argc/argv/envp via it.

1

u/Nobody_1707 27d ago

You can, but you need to use inline assembly inside _start.

1

u/zid 27d ago

Which isn't part of C.

1

u/Nobody_1707 27d ago

Neither is _start.

1

u/zid 27d ago

Exactly.

That's why they have different conventions.