嵌入式学习——1——C基础——1

认识c

         面向过程,也称为函数语言,精髓在于指针,操控内存。

学前准备

        Linux + Ubuntu(免费,开源,稳定)+Vmware虚拟机

Linux根目录下默认目录

/bin: 存放必要的二进制执行文件,这些文件在单用户模式下也必须可用,且通常由所有用户          使用,如ls, cp等。

/boot: 包含启动Linux系统所需文件,如内核(vmlinuz)引导加载程序配置。

/dev: 包含设备文件,这些文件代表系统中的硬件设备,如dev/sda(硬盘),dev/tty(终端)。

/etc: 存放系统配置文件,这些文件通常由系统管理员编辑,如etc/passwd。

/home: 通常为系统用户提供的个人存储目录,每个用户在home下有一个与用户名相对应的         目录。

/lib: 包含系统最基本的库文件和内核模块,这些文件支持位于/bin和/sbin目录下的二进制文件

/media: 用于挂载可移动媒体设备,如CD-ROMs,USB驱动器等。

/mnt: 通常用于临时挂载文件系统。

/opt: 用于存放可选的应用软件包和数据文件。

/proc: 一个虚拟文件系统,提供对内核和进程信息的接口,如proc/cpuinfo显示cpu信息。

/root: 系统管理员的家目录(root用户的家目录)。

/sbin: 存放系统管理程序,这些程序通常由root用户使用,如fdisk,ifconfig。

/srv: 包含一些服务启动后需要的数据。

/sys: 一个虚拟文件系统,用于与内核通信,提供系统和设备信息。

/tmp: 用于存放临时文件,系统重启时通常会被清空。

/usr: 包含和用户程序和数据,是Unix system Resources的缩写,包含多用户应用程序、         库、文档等。

/var: 用于存放经常变化的文件,如日志、邮件和打印队列等。

七种文件类型,文件权限

        bcd-lsp

b:块设备文件;

c:字符设备文件;

d:目录文件;

-:普通文件;

l:链接文件;

s:套接字文件;用于网络传输

p:管道文件,用于进程间通信:IO进程、线程接触

        文件权限

r:读权限 w:写权限 x:可执行权限 -:不具备权限

r-x: 可读不可写可执行权限

八进制认识

rwx: 111 ----> 1*2^2+1*2^1+1*2^0

r:4 w:2 x:1 -:0

rwxr-xr-x --->0755

文件的默认权限是:0664

Linux相关简单指令

        格式:指令名【选项】【参数】

        参考网站:API Reference Document

        man手册:例如:man 1 ls  (1是章节号,省略就是默认查询章节1)

1.ls

功能:查看目录以及文件的详细内容

ls        查看当前目录下的内容

ls xxx  查看当前目录下的xxx目录下的内容

ls -a    查看所有文件包含隐藏文件

ls -l     使用长列表查看当前目录下的所有内容并展示详细信息

ls -lh   同上,增加KMG单位进行显示

2.chmod

字母修改:+ - =

权限:r:可读 w:写 x:可执行 -:不具备权限

权限组合:

        文件所属用户user:u

        文件所属用户组group:g

        其他用户other:o

        所有用户all:a

例如当前列子:

        drwxr-xr-x 2 ubuntu ubuntu 4.0K 4月 15 23:55 Pictures

chmod u-x Picture        修改P目录删除用户对应的x(可执行)权限

chmod g+w Pxxx          修改P目录添加用户组对应的w(可写)权限

chmod o=r-- Pxxx         修改P目录其他用户对应的(可读不可写不可执行)权限

chomd u-r,g+w,o+w Pxxxx

八进制修改:

r:4    w:2    x:1    -:0

chmod 755 Pxxx          修改用户为rwx  用户组为r-x  其他用户为r-x

chmod 5 Pxxx    <=====>   chmod 005 Pxx

3.touch

功能:创建文件

注意:touch创建文件不识别后缀名,当文件存在时会跟新时间戳

touch 文件名 在当前目录下创建文件

touch 文件名1 文件2 .... 在当前目录下创建多个文件

touch ~/Pictures/file 在指定路径下创建文件

4.mkdir

功能:创建目录

mkdir dir1 dir2...              在当前目录下创建一个或多个目录  平级目录

mkdir dir1/dir2/dir3... -p   如果目录存在则忽略,否则创建dir1/dir2/dir3 层级目录

5.rmdir

功能:删除空目录,不可以删除文件(极少使用)

rmdir 目录1 目录2 ....         删除当前目录下的一个或多个空目录

rmdir dir1/dir2/dir3             只删除当前目录dir3

rmdir dir1/dir2/dir3 -p         删除dir1 dir2 dir3

6.rm

作用:删除文件,删除目录

rm file1 file2 ....                 删除当前目录下的一个或多个文件

rm dir1 dir2 ... -r                删除一个或多个目录

rm dir1/dir2/dir3 -r             只删除最后一个dir3

7.echo

作用:输出,类似c语言中的printf

echo 字符串 --》echo hello world

echo '字符串' --》echo 'hello world'

echo "字符串" --》echo "hello world"

echo -n 字符串             取消换行在终端回显

echo -e "\t字符串"         使转义字符起效果(-e)

8.cat

作用:在终端回显文件内容

cat 文件名                     在终端回显文件内容

cat -n 文件名                 回显文件内容包含行号

9.重定向 >  >>

>   单向重定向:覆盖

>> 双向重定向:追加

单向重定向 > 覆盖:删除原内容,替换新内容

        echo hello > file

                 如果文件file不存在,则创建文件,把字符串写入到文件中

                 如果文件file存在,把字符串覆盖原文件内容,修改时间戳

        cat f1 > f2

                如果文件f2不存在,则创建f2,把f1文件内容写入到f2中

                如果文件f2存在,把f1文件内容覆盖f2文件,修改时间戳

双向重定向 >> 追加:在文件的后面添加新内容

        echo hello >> file

                如果文件file不存在,则创建文件,把字符串追加到文件中

                如果文件file存在,把字符串追加原文件内容后面,修改时间戳

         cat f1 >> f2

                如果文件f2不存在,则创建f2,把f1文件内容追加到f2中

                如果文件f2存在,把f1文件内容追加f2文件后面,修改时间戳

10.cp

作用:文件或目录的拷贝

文件拷贝文件

        cp f1 f2 把文件f1拷贝给f2

                f2不存在,拷贝文件f1,命名为f2

                f2存在,拷贝文件f1,命名为f2,替换原来文件

文件拷贝目录         文件和目录都存在

        cp f1 dir1

                如果dir1中不存在同名文件,把f1文件拷贝一份,存到dir1目录中

                如果dir1中存在同名文件,把f1文件拷贝一份,存到dir1目录中,替换同名文件

目录拷贝目录

        cp dir1 dir2 -r

                如果dir2不存在,把dir1拷贝一份,命名为dir2

                如果dir2存在且不存在同名目录,把dir1拷贝一份存到dir2中

                如果dir2存在且存在同名目录,把dir1拷贝一份存到dir2中,替换原目录

                当把一个空目录替换一个非空目录时,不会发生替换

11.mv

作用:剪切,重命名

文件剪切文件

        mv f1 f2                 把文件f1重名为f2

                                      f2不存在,文件f1重命名为f2

                                      f2存在,文件f1重命名为f2,替换原来文件

文件剪切目录         文件和目录都存在

        mv f1 dir1

                         如果dir1中不存在同名文件,把f1文件剪切到dir1目录中

                         如果dir1中存在同名文件,把f1剪切到dir1目录中,替换同名文件

目录剪切目录

        mv dir1 dir2

                        如果dir2不存在,把dir1重命名为dir2     

                        如果dir2存在且不存在同名目录,把dir1剪切存到dir2中

                     

                        如果dir2存在且存在同名目录,

                                1.dir1非空 ,dir2中同名目录空,替换原目录

                                2.dir1非空 ,dir2中同名目录非空,剪切失败报错

                                3.dir1空 ,dir2中同名目录非空,剪切失败报错

                                4.dir1空 ,dir2中同名目录空,替换原目录

12.cd

作用:切换目录

cd ---> cd ~            默认回到家目录

cd 指定路径           切换到指定路径下

cd .                         切换到当前目录下

cd ..                        回到上一级目录

cd -                         回到上一次操作指令的路径

13.pwd

作用:在终端回显当前路径的绝对路径

14.whoami

作用:查看当前用户

  • 26
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sscanf函数是C语言中一个非常常用的函数,它可以将一个字符串按照指定的格式转换成相应的数据类型。在嵌入式开发中,sscanf函数也是非常常见的,因为很多时候需要从串口或者其他外部设备中读取数据,并将其转换成相应的数据类型进行处理。下面是一些sscanf函数的使用技巧: 1. 使用sscanf函数时一定要注意格式字符串的正确性。格式字符串中的占位符必须与待转换的数据类型相对应,否则会发生未知错误。 2. 如果待转换的字符串中包含多个数据,可以使用多个占位符进行转换。例如,如果待转换的字符串为"1,2,3",可以使用" %d,%d,%d"的格式字符串进行转换。 3. 可以使用sscanf函数的返回值来判断转换是否成功。如果返回值等于待转换字符串的长度,则说明转换成功,否则转换失败。 4. 如果待转换的字符串中包含浮点数,可以使用"%f"或者"%lf"的格式字符串进行转换。 5. 如果待转换的字符串中包含十六进制数,可以使用"%x"的格式字符串进行转换。 6. 如果待转换的字符串中包含字符或字符串,可以使用"%c"或者"%s"的格式字符串进行转换。 7. 如果待转换的字符串中包含指针类型的数据,可以使用"%p"的格式字符串进行转换。 总之,在使用sscanf函数时一定要注意格式字符串的正确性,否则很容易出现转换错误的情况。同时,还应该注意sscanf函数返回值的判断,以确保转换的正确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值