关于一些Linux系统编程总结

为了方便以后查阅,将一些编程过程中常遇到问题写下来节省以后翻阅时间。

1)rewind,C 程序中的库函数,功能是将文件内部的指针重新指向一个流的开头。
  函数名: rewind()
  功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头
  注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。
  rewind函数作用等同于 (void)fseek(stream, 0L, SEEK_SET);
  用 法: void rewind(FILE *stream);
  头文件: stdio.h
  返回值:无

2)linux尽量避免使用system。

1.fork一个子进程;
2.在子进程中调用exec函数去执行command;
3.在父进程中调用wait去等待子进程结束。
对于fork失败,system()函数返回-1。
如果exec执行成功,也即command顺利执行完毕,则返回command通过exit或return返回的值。
代替System函数可以用:

标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行。

这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程。

popen函数还创建一个管道用于父子进程间通信。父进程要么从管道读信息,要么向管道写信息,至于是读还是写取决于父进程调用popen时传递的参数。下在给出popen、pclose的定义:


3)提示错误“expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token“

原因可能是因为在声明函数时缺少“;”

4)stat函数讲解
表头文件:    #include <sys/stat.h>
                   #include <unistd.h>
定义函数:    int stat(const char *file_name, struct stat *buf);
函数说明:    通过文件名filename获取文件信息,并保存在buf所指的结构体stat中
返  回  值:    执行成功则返回0,失败返回-1,错误代码存于errno

错误代码:
    ENOENT                    参数file_name指定的文件不存在
    ENOTDIR                   路径中的目录存在但却非真正的目录
    ELOOP                      欲打开的文件有过多符号连接问题,上限为16符号连接
    EFAULT                     参数buf为无效指针,指向无法存在的内存空间
    EACCESS                  存取文件时被拒绝
    ENOMEM                   核心内存不足
    ENAMETOOLONG    参数file_name的路径名称太长

5)int main(int argc,char *argv[]);

第一个参数argc用来存放命令行参数的个数
第二个参数argv是指针数组,它是用来存放命令行中各个参数和命令字的字符串的
这里,argc的值和argv[]各元素的值都是系统自动组赋值的。

6)Linux系统常用指令

whoami 确认当前用户,例如:root权限用户

adduser 添加用户,例如:adduser jerry

su 表示进入用户,例如:su jerry(进入jerry)

sudo apt-get install openssh-server 是ssh的安装命令

cd 到达指定路径 ,例如:cd user/lib

pwd 显示当前所在路径

find 查找某文件所在路径,例如: find ../ -name text

mkdir 创建文件,例如:mkdir text

cp 文件拷贝,例如:cp -r 1st 2nd(将文件1st拷贝到2nd下)

vim 创建可编程文件,例如:vim text.c

rm 删除文件,例如:rm -r text(rm filenmae -rf强制删除,不带问询)

ls 列出当前目录下文件

关于文件颜色代表文件类型:蓝色表示目录文件,绿色代表可执行文件,红色表示压缩文件,浅蓝色表示链接文件,灰色表示其他文件,红色闪烁表示链接文件有问题,黄色是设备文件。

ls -l或ll 列出当前目录下文件及其详细信息(包括创建时间,权限等)

tar 压缩文件命令,例如:tar cvf text.tar text(将text文件压缩成text.tar文件) tar xvf text.tar(将text.tar文件解压到当前目录)

shutdown -h now 或 init 0 关机命令

reboot 重启电脑

chmod 更改文件权限,例如:chmod 777 text(权限设置是八进制的,分为可读可写可执行以及用户范围)

man 进入man手册(查阅命令行运用),例如:man ls

ifconfig -a 查看所有网卡(主要查询ip地址)

ctrl + c 快捷键,注释掉该行命令。

先分享这么多,严格说不属于原创,是对自己学习中遇到问题然后查阅前人经验进行总结整理完成。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值