Hi~,I am new here.i think that i already have basic understanding on C/C++. Now i want to try programming on Linux. unfortunately, i am not familiar with Linux. usually i work on Windows. so how to start c programming on Linux.
should i need to understanding:
1. Linux kernel
2. the shell of Linux
The shell, you really should (It's a very powerful tool).
The kernel, not necessarily.
For the basic stuff, using the standard C++ library there's barely any difference (only the path's conventions are different).
For GUIs, you're better off using an external library, like QT, GTK, wxWidgets...
Or deal with X11 and take your risks.
The shell in Linux is as important as Office in Windows.
You don't need to understand the kernel, but later, when you learn advanced stuff in C(++), you will be able to program your own kernel.
But rule number 1: NEVER, EVER USE X11 AS A BEGINNER; I TRIED AND IT IS A PAIN IN THE NECK TO UNDERSTAND. JUST GO ON, THE KERNEL IS EASIER THAN X11.
Also which Linux? There are hundreds of distributions out there, you should start with Ubuntu or Mint.
Both are easy to install and use, but I personally recommend Ubuntu. A new version came out recently.
And first learn how to use the shell, so you can easily use gcc or clang compilers from the shell.
You don't need to know anything about the kernel, POSIX is the standard. The last thing you want is to start writing Linux specific code, unless you have a specific performance problem.
The shell? There are many, but learn Bourne Shell, don't get hung up on the fancy improvements on BASH.
That should get you started. Once you're comfortable and are able to get things done, you will start picking up more detail as you go.