GCC Programming: An Overview of Languages and Libraries
GCC programming refers to programming languages based on the GCC compiler. You can design programs in any language that GCC supports.As can be seen from the image above, GCC programming involves the integration of three major languages under the LINUX system: C, C++, and assembly (ASM). The C language involves differences between the standard C library and the LINUX C library. If cross-platform compatibility is needed, such as for LINUX, WINDOWS, or MAC, then only the standard C library can be used. The standard C library is LIBC, and there are multiple implementations of this library, with GLIBC being the most commonly used.The LINUX C library provides system-level API interfaces specific to the LINUX system. If portability is not a concern and the program runs only on the LINUX platform, you can bypass the GLIBC library and directly use the system C API functions.Within the LINUX system, there are also various functional libraries, such as the POSIX thread library and the OPENSSL encryption library.The C++ language currently has the standard C++ library and the BOOST library, along with third-party functional libraries like JSON.Assembly (ASM) under LINUX naturally uses the A&T style of assembly format, and for most users, the CPU is still predominantly Intel’s X86_64 architecture.Finally, using the VIM editor, GCC compiler, GDB debugger, and MAKE tool, we can utilize C, C++, LINUX-style assembly language, and the LINUX C API interfaces to accomplish almost all tasks on LINUX.As DBAs, we need to maintain databases such as ORACLE and MYSQL, as well as other types of databases. Each database has C and C++ drivers available. We do not need to use SHELL scripts or GO language, as these are visible to everyone. Moreover, MYSQL is developed using C++ and C. Similarly, REDIS and PG are developed in C. Therefore, using C/C++ to maintain databases is a good practice. Additionally, stored procedures may not be supported by all databases, and your code will be understandable to everyone.