您的位置:首页 > 运维架构 > Linux

第一章Linux标准IO编程

2014-11-08 11:35 363 查看
源码来自华清远见的书上例子

一.实例一

mycp_1.c

#include <stdio.h>
#include <string.h>
#include <errno.h>

int main(int argc, char *argv[])
{
FILE *fps, *fpd;
int c;

if (argc < 3)
{
printf("Usage : %s <src_file> <dst_file>\n", argv[0]);
return -1;
}

if ((fps = fopen(argv[1], "r")) == NULL)
{
printf("fail to open %s : %s\n", argv[1], strerror(errno));
return -1;
}

if ((fpd = fopen(argv[2], "w")) == NULL)
{
printf("fail to open %s : %s\n", argv[2], strerror(errno));
return -1;
}

while ((c = fgetc(fps)) != EOF)
{
fputc(c, fpd);
}

fclose(fps);
fclose(fpd);

return 0;
}


二.实例二

mycp_2.c

#include <stdio.h>
#include <string.h>
#include <errno.h>

#define N 64

int main(int argc, char *argv[])
{
FILE *fps, *fpd;
char buf
;

if (argc < 3)
{
printf("Usage : %s <src_file> <dst_file>\n", argv[0]);
return -1;
}

if ((fps = fopen(argv[1], "r")) == NULL)
{
printf("fail to open %s : %s\n", argv[1], strerror(errno));
return -1;
}

if ((fpd = fopen(argv[2], "w")) == NULL)
{
printf("fail to open %s : %s\n", argv[2], strerror(errno));
return -1;
}

while (fgets(buf, N, fps) != NULL)
{
fputs(buf, fpd);
}

fclose(fps);
fclose(fpd);

return 0;
}


三.实例三

mycp_3.c

#include <stdio.h>
#include <string.h>
#include <errno.h>

#define N 64

int main(int argc, char *argv[])
{
FILE *fps, *fpd;
char buf
;
int n;

if (argc < 3)
{
printf("Usage : %s <src_file> <dst_file>\n", argv[0]);
return -1;
}

if ((fps = fopen(argv[1], "r")) == NULL)
{
printf("fail to open %s : %s\n", argv[1], strerror(errno));
return -1;
}

if ((fpd = fopen(argv[2], "w")) == NULL)
{
printf("fail to open %s : %s\n", argv[2], strerror(errno));
return -1;
}

while ((n = fread(buf, 1, N, fps)) > 0)
{
fwrite(buf, 1, n, fpd);
}

fclose(fps);
fclose(fpd);

return 0;
}


四.实例四

timer_record

#include <stdio.h>
#include <unistd.h>
#include <time.h>
#include <string.h>

#define N 64

int main(int argc, char *argv[])
{
FILE *fp;
time_t t;
struct tm *tp;
char buf
;
int line = 0;

if (argc < 2)
{
printf("Usage : %s <file>\n", argv[0]);
return -1;
}

if ((fp = fopen(argv[1], "a+")) == NULL)
{
perror("fail to fopen");
return -1;
}

while (fgets(buf, N, fp) != NULL)
{
if (buf[strlen(buf)-1] == '\n') line++;
}

while ( 1 )
{
time(&t);
tp = localtime(&t);
fprintf(fp, "%d, %d-%d-%d %d:%d:%d\n", ++line, tp->tm_year+1900, tp->tm_mon+1,
tp->tm_mday, tp->tm_hour, tp->tm_min, tp->tm_sec);
fflush(fp);
sleep(1);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: