LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (http://www.linuxquestions.org/questions/programming-9/)
-   -   UNIX (Linux, BSD, etc) Programming :: UNIX (http://www.linuxquestions.org/questions/programming-9/unix-linux-bsd-etc-programming-unix-164815/)

kuphryn 03-31-2004 11:42 PM

UNIX (Linux, BSD, etc) Programming :: UNIX
 
Hello.

I am a Win32 platform C++ programmer. One of my interest now is programming in the UNIX platform. I have several questions.

First off, I am not interested in scripting, per se, but rather real-world software design and implementation.

In UNIX, what tools including libraries, IDE, and compilers, are used when developing client/server application running both as a service and GUI?

What books do you recommend for developing client/server applications in UNIX using C++ that go over subjects such as multithreading, sychronization, multiple processes, services, and GUI?

Thanks,

Kuphryn

jschiwal 04-01-2004 01:27 AM

There are two books that you might want to look at.
The Art of UNIX programming by Eric S. Raymond.
Advanced Programming in th UNIX Environment by W. Richard Stevens.

There is a book you can download - Advanced Linux Programming. You can find it
on the O'Reilly website.

Open source c++ software is written using g++. Intel also sells a compiler and libraries.
There is Kdevelop and a QT3 IDE that's included with any linux system.

Services are started by scripts in the /etc/rc.d/init.d directory. Those are shell scripts that start|stop|restart the actual services (daemons).

Good Luck. I'm sure others on this site can give you even better pointers.

Marius2 04-01-2004 07:23 AM

>In UNIX, what tools including libraries, IDE, and compilers, are used when >developing client/server application running both as a service and GUI?
KDevelop is an IDE similar to MSVC, even with intellisense. But if you
want to be portable to other *NIX than Linux/KDE brand, stay with
gcc and make. (To glue together a project with make, you need a makefile. There are samples on the net, even configuration scripts like configure to setup a project automatically in a given *NIX environment.). Concerning GUI, you may want to take a look at GTK libs; they are easy to program
(http://www.gtk.org/tutorial/).
For multimedia stuff, use SDL libs - similar to DirectDraw/Sound/Input (yet easier). Even provides OpenGL interface.
For multithreading, search google for POSIX threads.
Network programming: Linux uses Berkeley sockets, just like under win32
(with minor differences).
Note: If you want to have your GUI project compilable under both and win, take a look at Trolltechs' QT and/or wxWindows.


>What books do you recommend for developing client/server applications >in UNIX using C++ that go over subjects such as multithreading, >sychronization, multiple processes, services, and GUI?
You'll find almost anything on the net. Otherwise, O'Reilly has some good books.

kuphryn 04-01-2004 09:02 AM

Okay. Thanks.

Kuphryn

jpbarto 04-01-2004 09:04 AM

Anjuta is a great environment to help with Makefiles and uses gcc. It integrates with tools that allow you to 'drag n drop' to create GUI interfaces using the GTK and provides a good IDE. Eclipse is a good Java IDE if you're looking to get into that.

kooch 04-01-2004 09:41 AM

Unix Network Programming by W. Richard Stevens is good as well. However I think all of his books are in _C_ not _C++_.(the ones mentioned so far in this thread are in C)

jschiwal 04-04-2004 11:27 AM

Here is a link to a website that has released one of their books (Advanced Linux Programming). You can download the PDF files and sample source code. It has a chapter on threads in linux.

http://www.codesourcery.com/

kuphryn 04-04-2004 03:49 PM

I read some reviews on Advanced UNIX Programming by Richard Stevens. That book seems interesting.

Kuphryn

skoona 04-04-2004 11:50 PM

IDE, Editor, and RPM Tools
 
eclipse from the http://www.eclipse.org/ site is a fairly comprehensive C/C++/Cobol and Java IDE toolset. Redhat even has a "Redhat Developer Suite" that includes a RPM creation wizard. All of which are very useable for most projects.

It's is worth a long look


All times are GMT -5. The time now is 05:50 PM.