07-15-2013
I'm not sure where the best place to begin is, but you need to keep one thing in mind in C. It's very different from other languages in that it's kind of a construction kit. Nearly all the features in C are there because the CPU directly supports them. All the oddness of the language, its unusual features and odd limits, its strange compilation errors stem from this -- that it is molded around the shape of the CPU itself. Anything that's not CPU-supported is done through external functions, one way or another.
Local variables really are local variables -- stored on the stack. They are directly available to the CPU if you set up space for them.
Global variables are likewise stored in the data segment, another CPU thing.
Functions are actual CPU functions, i.e. blocks of data you direct the CPU to via the CALL instruction or newer equivalents. They have addresses that you can get at, just like anything else in C.
Pointers are how the CPU deals with all memory, and are exposed directly to you, unlike most languages, which have fancy references that handle themselves, or no references at all. Variables are also handled directly with no middleman. You do A++; and the CPU will do something like INC [address of A]
So when you write a C program, you are telling it "Okay, create THESE functions, which I will call X Y and Z... with THESE local variables, which I will call Q Y and R... with these global things in the data segment, which I will call G H and M... Convert these statements into assembly language and find spots in memory for them. Convert all names into these addresses. Then staple everything together into something the CPU can load and execute directly."
Last edited by Corona688; 07-15-2013 at 03:02 PM..
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I just installed FreeBSD 4.5 and I want to find out how I can start and run X? When I boot I get taken to the command line. Xconfigurator doesn't want to work. (2 Replies)
Discussion started by: AMDPwred
2 Replies
2. Programming
i would like advice on the usbject of c programming (in the middle of reading a book on C). could i benefit more if i apply that knowledge in the unix format if i were able to, or would that take the point out of learning C, basically I want to stay away from strying too far away from unix and use... (1 Reply)
Discussion started by: moxxx68
1 Replies
3. Shell Programming and Scripting
I am re-learning UNIX and want to download Unix to my lab for studying on the road. Any suggestions? Got several books, but need to run scripts :rolleyes: (2 Replies)
Discussion started by: DudeMan
2 Replies
4. Shell Programming and Scripting
Several months ago I found a link that explained the difference between how a Unix Systems Admin would do scripting compared to what a Unix Programmer would do.
It showed a basic script and then show several iterations that explained how the Systems Admin would change it to make it better. I was... (0 Replies)
Discussion started by: BCarlson
0 Replies
5. UNIX for Dummies Questions & Answers
Hello,
I am trying to learn Networking Programming in C in unix enviorment. I want to know how good it is to become a network programmer. i am crazy about Network programming but i also want to opt for the best carreer options. Anybody experienced Network Programmer, please tell me is my... (5 Replies)
Discussion started by: vibhory2j
5 Replies
6. Programming
Can someone help me on suggesting some ways to access the memory content in RAM directly from C/C++ source code.
Please provide me any book name or any URL so that I can get an exhaustive
knowledge over it.
If possible please give me some tips on interacting with hardwares directly
through... (3 Replies)
Discussion started by: nandumishra
3 Replies
7. UNIX for Dummies Questions & Answers
How does unix system administration, unix programming, unix network programming differ?
Please help. (0 Replies)
Discussion started by: thulasidharan2k
0 Replies
8. Web Development
I'm studying web design and I would like to know the stages to knowing what you will ultimately need to know when entering this profession. With HTML being the step one and the basics, to I think XHTML and Css, being two, what's next? JavaScript? MySQL? Can some one provide an ordered list of... (5 Replies)
Discussion started by: Anna Hussie
5 Replies
9. UNIX for Dummies Questions & Answers
Hello.
I like Linux and C programming language. Allways wanted to understand kernel and become a Linux system programmer. And I also like Objective-C and iOS. These two programming areas have relations:
1. Linux and iOS are UNIX-like systems, POSIX compliant.
2. It is useful to know C language... (2 Replies)
Discussion started by: Rockatansky
2 Replies
10. UNIX for Dummies Questions & Answers
e.g.
File name: File.txt
cat File.txt
Result:
#INBOUND_QUEUE=FAQ1
INBOUND_QUEUE=FAQ2
I want to get the value for one which is not commented out.
Thanks, (3 Replies)
Discussion started by: Tanu
3 Replies
LEARN ABOUT CENTOS
netrom
NETROM(4) Linux Programmer's Manual NETROM(4)
NAME
AF_NETROM - NET/ROM amateur packet radio protocol family
DESCRIPTION
NET/ROM is a protocol used extensively by radio amateurs. The Linux NET/ROM protocol family permits access to these protocols via the stan-
dard networking socket metaphor.
The NET/ROM protocol layer only supports connected mode. IP traffic may be stacked on top of NET/ROM frames using a non-standard extension
to the NET/ROM protocol.
The only mode of operation is connected mode which is the mode used for a socket of type SOCK_SEQPACKET (stream sockets are not available
in NET/ROM). This requires that the user ensures output data is suitably packetised, and that input data is read a packet at a time into a
buffer of suitable size.
NET/ROM addresses consist of 6 ascii characters and a number called the SSID. These are encoded into a sockaddr_ax25 structure which is
provided to the relevant system calls.
NET/ROM has some unusual properties. Notably in a multi-user system an AX.25 address is often associated with a user, and some users may
not have such an association. a set of ioctl calls are provided to manage an association table.
NET/ROM supports the following socket options for SOL_NETROM. NETROM_T1 is the T1 timer in 1/10ths of a second, NETROM_T2 is the T2 timer
in 1/10ths of a second. NETROM_N2, the retry counter is also configurable. There is no 'infinite retry' option supported however. It is
possible for an application to request that the NET/ROM layer return the NET/ROM header as well as the application data, this is done via
the NETROM_HDRINCL socket option.
SEE ALSO
call(1), socket(2), setsockopt(2), getsockopt(2), nrbroadcast(5), nrports(5), netromd(8), noderest(8), nodesave(8), nrparms(8).
AUTHOR
Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>
Linux 25 July 1996 NETROM(4)