2021-5-18main函数参数/输入输出总结/errno

主题:

日常学习记录,包括:

  • main函数的参数介绍
  • 输入输出总结
  • errno机制

内容:

1 main函数参数
对于有形参int argc, char** argv的main函数,实际上表示的是命令行参数,地一个表示
参数的个数,第一个传进去的参数总是 可执行的文件名,所以没有命令行参数的话,就是值为1
如果加上一些命令行参数(不需要加双引号,但是会当作字符串数组来处理),相应的参数会传到
argv参数里,argv[0]总是表示 可执行文件名

int main(int argc, char** argv)
{
   cout<<argc<<endl;
   cout<<argv[0]<<endl; 
   return 0;
}

2 输入输出总结
相对应的输入输出api:
1 printf,scanf 用于标准输入输出
2 fprintf, fscanf 第一次参数多了一个FILE指针,FILE指针的得来一般是通过fopen函数fopen(“path”, mode)
mode可以为“w”,“r”,“r+”之类的。stdin,stdout,stderr也是FILE指针。
可以用类似printf和scanf的形式使用
3 fgetc, fputc(int fgetc (FILE *fp))用于从一个FILE文件中读取一个字符或者写入一个字符
fgetc() 读取成功时返回读取到的字符,读取到文件末尾或读取失败时返回EOF。
fgetc(stdin) 等价于 getchar()
int fputc ( int ch, FILE *fp );
当然也可以stdin,stdout,stderr这些特殊的FILE指针。
4 fgets,fputs
int fputs(const char *str, FILE *stream) 发生错误返回EOF,否则返回非负值
char *fgets(char *str, int n, FILE *stream)从指定的流 stream 读取"一行",并把它存储在
str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,
具体视情况而定。
如果成功,该函数返回相同的 str 参数。如果到达文件末尾或者没有读取到任何字符,str 的内容保持不变,
并返回一个空指针。
5 read write函数使用与那些从“文件描述符fd”,而不是FILE对象来进行读写的操作。
read write为linux的系统函数
标准输入的fd为0,标准输出为1,标准错误输出为2.也可以用宏定义来表示
ssize_t read(int fd, void *buf, size_t count);
从fd表示的文件中读入“一行”。不包括最后的那个\n。
当返回值为-1时,表示出错,否则,表述读出的字节数。为0表示读完毕
ssize_t write(int fd, const void *buf, size_t count);
当返回值为-1时,表示出错,否则,表述写入的字节数
6 这个fd体系对应的是open函数,参数为路径和模式(通过宏定义来实现)关闭使用close
FILE体系,为c语言的标准库,文件打开用fopen,关闭用fclose

3 errno
errno是一个全局变量,存放一个整数,表示当前的错误类型。
0表示没有错误。一个函数如果发生错误,通常的做法是,设置errno,然后返回-1.
因此,我们应该使用errno来查看错误的类型。错误类型对应的名字在sys/errno.n文件中
定义。这是一个linux,unix特有的机制。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值