Linux C语言编程基本原理与实践 笔记 gcc max.o hello.c

人类和计算机交流的一种方式。

C语言适合做Linux嵌入式。小工具。

MAC电脑是Unix内核。

二、Linux基本操作

#vi a.c新建文件

#rm a.c删除文件

i 当前光标前面插入

a当前光标后面插入

shift+a 行尾插入

shift+i 行首插入

o下一行插入

shift+o上一行插入

dd 删除光标所在行

三 Linux下第一个C程序

vim a.c

#include <stdio.h>

int main ()
{
    printf("hello word !\n");
    return 0;
}

gcc a.c 编译得到a.out

./a.out 运行程序输出结果

第四章 多文件操作

多文件分而治之

vim在打开一个文件的时候可以同时打开另外一个文件。在命令状态下输入:sp max.c 就是新建一个max.c文件并同时打开。

Ctrl+w 可以在文件之间进行切换。

:set nu 打开行号

输入行号 按dd 剪切光标到行号的部分到剪切板。 p粘贴

gcc hello.c max.c -o hello.out  将hell.c和max.c编译到hello.out

头文件与函数定义分离

gcc -c max.c -o max.o首先编译max.c

gcc max.o hello.c 将编译好的max.o和hello.c一起编译。

头文件只声明就行。而且不用编译。直接保留在软件系统中。

第五章 makeFile 的编写与使用

make工具可以将大型的开发项目分成若干个模块。使用make工具很清晰很快捷的整理源文件。

首先查看是否安装了make工具。

vi MakeFile //貌似都是这个命名

# this is make file这是注释。gcc前面是一个Tab。
# this is make file
hello.out:max.o min.o hello.c
        gcc max.o min.o hello.c -o hello.o
max.o:max.c
        gcc -c max.c
min.o:min.c
        gcc -c min.c

make 直接就执行MakeFile来编译程序。 重新执行的时候直接编译从来没有编译过的文件。

第六章 main 函数详解

main 函数中的 return

main 函数完整版。

# include <stdio.h>

int main( int argv,char* argc[])
{
    printf("hello word");
    return 0;
}

gcc main.c -o main.out && ./main.out 这里的&&表示前面的执行成功之后执行后面的。如何判断第一句执行是否成功?

echo $? 输出执行结果是否成功(返回0表示正确执行,否则是失败了。)

这里echo输出的0是上面的return0;

修改后:

# include <stdio.h>

int main( int argv,char* argc[])
{
    printf("hello word");
    return 101;
}

gcc main.c -o main2.out && ./main2.out 能够正常输出

echo $? 输出结果是101

./main2.out && ls 这里只能正常输出运行结果。&&后面的没有执行ls命令。

因此return 0;不能随便写。

main 函数中的参数

argv是参数的个数。argc[]存放参数的内容。
# include <stdio.h>

int main( int argv,char* argc[])
{

    printf("argv is %d\n",argv);
    int i;
    for (i=0;i<argv ;i++){
        printf("argc[%d] is %s!\n",i,argc[i]);
    }

    return 0;
}

gcc main2.c -o m4.out 编译

eg1:     ./m4.out  执行

执行结果

argv is 1
argc[0] is ./m4.out!

eg 2:    ./m4.out qw werer ds 执行 并且给多个参数

执行结果
argv is 4
argc[0] is ./m4.out!
argc[1] is qw!
argc[2] is werer!
argc[3] is ds!

第七章输入输出流和错误流

标准输入流输出流以及错误流

重定向

第八章 管道原理及应用

第九章 打造实用C语言小程序

时间: 2024-08-05 11:36:34

Linux C语言编程基本原理与实践 笔记 gcc max.o hello.c的相关文章

《Linux/Unix系统编程手册》读书笔记7 (/proc文件的简介和运用)

<Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h>文件中的常量. 通过cat 命令查看: [email protected]:~/Code/tlpi$ cat /usr/include/limits.h /* Copyright (C) 1991, 1992, 1996, 1997, 1998, 1999, 2000, 2005 Free Software

《Linux/Unix系统编程手册》读书笔记8 (文件I/O缓冲)

<Linux/Unix系统编程手册>读书笔记 目录 第13章 这章主要将了关于文件I/O的缓冲. 系统I/O调用(即内核)和C语言标准库I/O函数(即stdio函数)在对磁盘进行操作的时候都会发生缓冲.通过缓冲可以在一定程度上将用户空间与实际的物理设备分离,还可以减少内核访问磁盘的次数. 先来看看关于内核缓冲区高速缓冲:read和write调用在对磁盘文件进行操作的时候不会直接访问磁盘,如下图所示. 例如:write(fd, "abc", 3) write调用会将"

《Linux/Unix系统编程手册》读书笔记9(文件属性)

<Linux/Unix系统编程手册>读书笔记 目录 在Linux里,万物皆文件.所以文件系统在Linux系统占有重要的地位.本文主要介绍的是文件的属性,只是稍微提及一下文件系统,日后如果有更深入的研究一定会写出来. 下图为磁盘分区与文件系统的关系 文件系统中的文件(目录)在i-node表上都有唯一的记录(i-node).i-node通过数据块指针指向数据块,这些数据块就是该i-node对应的文件的数据. i-node与数据块的关系如下: 因为Linux支持很多类型的文件系统,但是每种文件系统的

(新手篇)嵌入式Linux C 语言编程环境

嵌入式Linux C 语言编程环境有四部分 1.编译器vi 1.1 vi的基本模式 1.1.1 命令模式(Command Mode) 在该模式下输入命令来控制屏幕光标的移动,字符.单词或行的删除,移动复制段落. 1.1.2 插入模式(Insert Mode) 按[ESC]键可以回到命令行模式.按字母[i]键进入插入模式,就可以写代码了. 1.1.3 低行模式(Last Line Mode) 命令模式下,按[:]键进入低行模式.如“:q”离开 “:w”保存. 2.编译链接器 GCC 2.1 GCC

优就业开发教程-精通Unix下C语言编程与项目实践

当前软件业开发工具日新月异,从C到C++,从Java到.net,新构架.新组件层出不穷,今天刚学习到的知识,也许明天就已经过时了.要想在激烈的竞争中站稳脚跟,在知识大爆炸中跟上时代的步伐,软件开发者一般会有两种应对方式: 1. 疯狂的学习,每天恶补新知识以适应知识发展的需要. 2. 打牢基础,选择一个相对稳定的平台和相对稳定的开发语言,以不变应万变. 在Unix下C语言编程是一种相对稳定的开发平台下的开发语言,掌握了它,就可以轻松完成当前Unix服务器下疯狂增长的各式各样的功能需求. 为什么选择

Python编程入门到实践 - 笔记(1,2章)

自学 Python 有段时间了,总是觉得自己基础不牢,想着把看完的两本基础书写个博客做个笔记啥的. 准备在重新看一遍<Python编程入门到实践>,坚持写博客笔记. Python编程入门到实践的前两章笔记,学习的内容如下: 查看当前环境中的 python 版本 python环境的搭建 变量和变量的命名 字符串的打印 修改字符串的大小写 制表符和换行符 删除空白字符 python的整数运算,计算平方,立方 使用 str() 函数 查看当前环境中的 python 版本 命令行下输入 python 

Go语言编程(旧读书笔记)

Go语言编程 目录 [隐藏] 1 前言 2 初识Go语言 3 顺序编程 4 OOP 5 并发编程 6 网络编程 7 安全编程 8 工程管理 9 开发工具 10 进阶话题 11 附录A [编辑]前言 协程? go run('test') Go强制了{ }的编写风格: if expression { 错误处理: defer?相当于finally?注意这里的作用域,defer之前似乎没有用{ }把整个(try)块括起来? defer相当于说推迟语句的执行,其内部实现会自动管理嵌套作用域的问题? Go允

Python编程入门到实践 - 笔记( 8 章)

第 8 章主要练习了各种函数,内容如下 定义一个简单的函数 向函数传递信息 什么是形参 什么是实参 位置参数 多次调用函数 关键字实参 默认值参数 返回值 return 让参数编程可选的 返回字典 结合使用函数和 while 循环 传递列表 在函数中修改列表 传递任意数量的实参 传递任意数量的参数并循环打印 结合使用位置参数和任意数量实参 使用任意数量的关键字实参 导入整个模块 导入特定的函数 使用 as 给函数指定别名 使用 as 给模块指定别名 导入模块中所有的函数 定义一个简单的函数 直接

Linux shell脚本编程及系统启动实践

1.编写脚本,接受二个位置参数,magedu和/www,判断系统是否有magedu,如果没有则自动创建magedu用户,并自动设置家目录为/www [[email protected] qiuhom]#cat checkuser.sh #!/bin/bash user=$1 [ $UID -ne 0 ] && echo "this script must root run it" && exit 3 [ $# -ne 2 ] && ech