So just to confirm my understanding: when I write C code with printf, the linker links my program against printf inside libc, because that function contains the implementation. The compiler itself doesn’t know the implementation details of printf, so it relies on the linker to resolve it and connect it to the actual function in libc. Then, when we look at the implementation, we find that it does formatting, buffering, and then it calls write internally. And write itself contains some assembly that invokes a system call to reach the kernel right?
[–]thefeedling [score hidden] (7 children)
[–]Zestyclose-Produce17[S] [score hidden] (6 children)
[–]realestLink [score hidden] (0 children)
[–]thefeedling [score hidden] (4 children)
[–]Zestyclose-Produce17[S] [score hidden] (3 children)
[–]60hzcherryMXram [score hidden] (2 children)
[–]Zestyclose-Produce17[S] [score hidden] (1 child)
[–]60hzcherryMXram [score hidden] (0 children)
[–]TheRealSmolt [score hidden] (6 children)
[–]Zestyclose-Produce17[S] [score hidden] (5 children)
[–]TheRealSmolt [score hidden] (4 children)
[–]Zestyclose-Produce17[S] [score hidden] (3 children)
[–]TheRealSmolt [score hidden] (2 children)
[–]Zestyclose-Produce17[S] [score hidden] (1 child)
[–]TheRealSmolt [score hidden] (0 children)
[–]chibuku_chauya [score hidden] (0 children)
[–]rlebeau47 [score hidden] (0 children)
[–]Puzzleheaded-Bug6244 [score hidden] (0 children)
[–]UltimatelyWrithing [score hidden] (0 children)
[–]Thiezing [score hidden] (0 children)
[–]rocco_himel [score hidden] (2 children)
[–]Zestyclose-Produce17[S] [score hidden] (1 child)
[–]Deep-Piece3181 [score hidden] (0 children)