例子:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
void create_file(char *filename)
{
if(creat(filename,0755)<0)
{
printf("create file %s failure!\n",filename);
exit(EXIT_FAILURE); //EXIT_FAILURE = 1; exit(STATE) 用于退出状态(成功还是失败)
}
else
{
printf("create file %s succes!\n",filename);
}
}
int main(int argc, char* argv[] )
{
int i;
if(argc < 2)
{
perror("you havent't input the filename, please try again!\n");
exit(EXIT_FAILURE);
}
for(i=1; i<argc; i++)
{
create_file(argv[i]);
}
exit(EXIT_SUCCESS);
}
着重说说不懂的点吧!
EXIT_FAILURE 在stdlib.h中有定义:
#define EXIT_FAILURE1 /* Failing exit status. */
#define EXIT_SUCCESS0 /* Successful exit status. */
主要是测试退出时,程序是成功退出还是失败退出。
main(int argc, char* argv[] ):
这个以前就头痛这个问题,argc是所有命令行参数和,但是我谁计算的,说它是就是了吗?
char* argv[]是一个数组指针,每个元素都是char 型的。
至于 perror:
范例: 测试环境:Linux,GCC #include <stdio.h> int main(void) { FILE *fp ; fp = fopen( "/root/noexitfile", "r+" ); if ( NULL == fp ) { perror("/root/noexitfile"); } return 0; } 运行结果: [root@localhost io]# gcc perror.c [root@localhost io]# ./a.out /root/noexitfile: No such file or directory