为了方便以后查阅,将一些编程过程中常遇到问题写下来节省以后翻阅时间。
1)rewind,C 程序中的库函数,功能是将文件内部的指针重新指向一个流的开头。
函数名: rewind()
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头
注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。
rewind函数作用等同于 (void)fseek(stream, 0L, SEEK_SET);
用 法: void rewind(FILE *stream);
头文件: stdio.h
返回值:无
2)linux尽量避免使用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 快捷键,注释掉该行命令。
先分享这么多,严格说不属于原创,是对自己学习中遇到问题然后查阅前人经验进行总结整理完成。