ZC_20160503

本文深入探讨了C/C++中的进程管理及错误处理机制,包括进程结束状态的判断、错误输出方法perror的原理,以及如何通过字符串格式化函数fprintf进行输出流定制。同时介绍了重要的库函数如strtol、strcmp,并详细阐述了如何利用本地时间结构体打印当前时间。文章旨在为开发者提供全面的技术指导,提升程序的稳定性和可靠性。

1、int main(int argc, const char** argv)

  exit(?);

 

2、子进程的结束状态返回后存于status,底下有几个宏可判别结束情况  

  2.1、WIFEXITED(status)  如果子进程正常结束则为非0值。  
  2.2、WEXITSTATUS(status) 取得子进程exit()返回的结束代码,一般会先用WIFEXITED 来判断是否正常结束才能使用此宏。  
  2.3、WIFSIGNALED(status)  如果子进程是因为信号而结束则此宏值为真 

  2.4、WTERMSIG(status)  取得子进程因信号而中止的信号代码,一般会先用WIFSIGNALED 来判断后才使用此宏。  
  2.5、WIFSTOPPED(status) 如果子进程处于暂停执行情况则此宏值为真。一般只有使用WUNTRACED 时才会有此情况。  
  2.6、WSTOPSIG(status)  取得引发子进程暂停的信号代码,一般会先用WIFSTOPPED 来判断后才使用此宏。

 

 

3、

  perror(s) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno(这里的说法不准确,errno是一个宏,该宏返回左值) 的值来决定要输出的字符串。
  在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。当你调用"某些"函数出错时,该函数已经重新设置了errno的值。perror函数只是将你输入的一些信息和现在的errno所对应的错误一起输出。
 

 

4、

char *timeString(time_t t, char *buf)
{
  struct tm *local;
  local = localtime(&t);
  strftime(buf, TIME_STRING_BUF, "%c", local); // ZC:这里用 %c 就能打印 struct tm 的信息了~~
  return buf;
}

 

5、

  fprintf是C/C++中的一个格式化写—库函数,位于头文件<stdio.h>中,其作用是格式化输出到一个流/文件中;函数原型为int fprintf( FILE *stream, const char *format, [ argument ]...),fprintf()函数根据指定的格式(format)向输出流(stream)写入数据(argument)。

  ZC: 个人理解 printf不能指定输出流(它只能是 stdout)。fprintf 可以指定输出流,可以是 strerr、stdout 或者是自己创建的流。

 

6、

  strtol

  strcmp

  ZC: 这些是 C/C++库函数吗?

 

7、

8、

9、

10、

 

转载于:https://www.cnblogs.com/LinuxCode/p/5454136.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值