What you mentioned is compatibility across platforms. A program written in C is also guaranteed to run on all the systems you mentioned, given that the system has a C compiler and libc that stick to the standard. You, the programmer, does not have to anything to “make sure” your program works.
We’ve invented high-level programming languages like C 53 years ago, just to get away from assembly, and to avoid dealing with the “cross-platform” problem you mentioned, remember?
What if the system does not have libc? What if your program needs obscure library X?
Why do you think anyone even came up with the idea of virtual machines? Don’t you think they had a problem they wanted to solve, that was not solved adequately before?
Maybe you should. Android for example does not use glibc and instead uses “Bionic” by default, which only implements a subset of libc.
It is possible to write a C program that runs on one system but not on another. You can’t do that with node, if it runs on the VM and the VM runs in another place, your program will also run there.
What you mentioned is compatibility across platforms. A program written in C is also guaranteed to run on all the systems you mentioned, given that the system has a C compiler and libc that stick to the standard. You, the programmer, does not have to anything to “make sure” your program works.
See this insane list of platforms GCC supports.
https://en.wikipedia.org/wiki/GNU_Compiler_Collection#Architectures
We’ve invented high-level programming languages like C 53 years ago, just to get away from assembly, and to avoid dealing with the “cross-platform” problem you mentioned, remember?
What if the system does not have libc? What if your program needs obscure library X?
Why do you think anyone even came up with the idea of virtual machines? Don’t you think they had a problem they wanted to solve, that was not solved adequately before?
No offence but I think I need to stop discussing with you.
Maybe you should. Android for example does not use glibc and instead uses “Bionic” by default, which only implements a subset of libc.
It is possible to write a C program that runs on one system but not on another. You can’t do that with node, if it runs on the VM and the VM runs in another place, your program will also run there.