功能:先创建一个g的文本文件,主线程输入偏移量和需要读取文件的长度,接收到需要读取的文件时创建一个线程从偏移量开始读取文件并打印到屏幕上;
代码如下:
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<pthread.h>
#define N 1024*1024*1024
struct Th
{
long int offset;
long int len;
};
void func_write_file()
{
FILE *fp = fopen("./file.txt","w");
int i;
char *str = "abcdefghijklmnopqrstuvwxyz666666";
int len = strlen(str);
for(i = 0; i < N/32;i++)
{
fwrite(str,sizeof(char),strlen(str),fp);
}
}
void *func2(void *p)
{
struct Th *th;
th = (struct Th*)p;
long int off = th->offset;
long int len = th->len;
FILE *fp = fopen("./file.txt","r");
fseek(fp,off,SEEK_SET);
char *arr = (char *)malloc(sizeof(char)*(len+1));
memset(arr,0,len+1);
fread(arr,sizeof(char),len,fp);
printf("%s\n"