about summary refs log tree commit diff stats
path: root/dev/c/hello.html
diff options
context:
space:
mode:
authorSilvino <silvino@bk.ru>2019-06-28 03:58:25 +0100
committerSilvino <silvino@bk.ru>2019-06-28 03:58:25 +0100
commitbb4fd340e7a1faffc363c6baa2f67e84b3a34f0c (patch)
treeb8e4bed0ede5b48bf26b920949e83e36c1fe431c /dev/c/hello.html
parent296be79a3b724db67a37244a67cfb3e4ef6b652f (diff)
parentfe94262de38aafc839963ced9b82ee45d81b65f5 (diff)
downloaddoc-bb4fd340e7a1faffc363c6baa2f67e84b3a34f0c.tar.gz
doc release 0.5.4
Diffstat (limited to 'dev/c/hello.html')
-rw-r--r--dev/c/hello.html134
1 files changed, 134 insertions, 0 deletions
diff --git a/dev/c/hello.html b/dev/c/hello.html
new file mode 100644
index 0000000..ff31bc9
--- /dev/null
+++ b/dev/c/hello.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html dir="ltr" lang="en">
+    <head>
+	<meta charset='utf-8'>
+	<title>C &amp; GDB</title>
+    </head>
+    <body>
+        <a href="../index.html">C &amp; GDB Index</a>
+
+	<h1>Hello World</h1>
+
+        <p>C "allows to implement" or approach to various
+        programming paradigms but due to it's characteristics
+        it's more a procedural language. C procedural programs
+        are divided in smaller procedures, or functions, and
+        data or pointers to data are passed into them or is
+        shared between them. To get started create file
+        hello.c with;</p>
+
+	<pre>
+	#include &lt;stdio.h&gt;
+
+	int main() {
+	    printf("Hello World!");
+	    return 0;
+	}
+	</pre>
+
+	<p>Compile;</p>
+
+	<pre>
+	$ gcc -Wall hello.c -o hello
+	</pre>
+
+	<p>Run;</p>
+
+	<pre>
+	$./hello
+	Hello World!
+	</pre>
+
+	<h2 id="makefile">Makefile</h2>
+
+	<p>Make reads a Makefile by default on current directory,
+	Makefile defines targets, for example executables and their
+	dependencies, for example object files and source files.<p>
+
+	<p>Create Makefile;</p>
+
+	<pre>
+	CC=gcc
+	CFLAGS=-Wall
+
+	hello: main.o hello.o
+
+	clean:
+		rm -f hello main.o hello.o
+	</pre>
+
+	<pre>
+	$ touch NEWS README AUTHORS ChangeLog
+	</pre>
+
+	<h2 id="debug">Debug</h2>
+
+	<p>To use gdb you need to compile program with -g flag. Change
+	Makefile</p>
+
+	<pre>
+	CC=gcc
+	CFLAGS=-Wall -g
+
+	hello: main.o hello.o
+
+	clean:
+		rm -f hello main.o hello.o
+	</pre>
+
+	<pre>
+	$ gdb hello
+	</pre>
+
+	<p>Set break point;</p>
+
+	<pre>
+	(gdb) break main
+	</pre>
+
+	<p>To start the program you can type run, this way gdb
+	will try to run the program until the end. If program
+	crash, gdb will stop it for debuging. Start program;</p>
+
+	<pre>
+	(gdb) run
+	</pre>
+
+	<p>Step in next line;</p>
+
+	<pre>
+	(gdb) s
+	</pre>
+
+        <p>Print variable "name" value;</p>
+
+        <pre>
+        (gdb) print name
+        $1 = 0x4005b0 "world"
+        (gdb)
+        </pre>
+
+        <p>Print variable "name" type;</p>
+
+        <pre>
+        (gdb) ptype name
+        type = const char *
+        (gdb)
+        </pre>
+
+        <p>Variable is a <a href="elements.html#const">string constant</a>.
+        Execute next line to end;</p>
+
+	<pre>
+	(gdb) n
+	</pre>
+
+        <a href="../index.html">C &amp; GDB Index</a>
+	<p>
+	This is part of the Hive System Documentation.
+	Copyright (C) 2019
+	Hive Team.
+	See the file <a href="../../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
+	for copying conditions.</p>
+    </body>
+</html>