#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <string.h>
char buf[]="1234567";
void *callBack(void *arg)
{
while(1)
{
printf("buf:%s\n",buf);
}
return NULL;
}
int main(int argc, const char *argv[])
{
pthread_t tid;
char a;
int len=strlen(buf);
int i=0;
for(i;i<len/2;i++)
{
a=buf[i];
buf[i]=buf[len-i-1];
buf[len-i-1]=a;
}
pthread_create(&tid,NULL,callBack,NULL);
while(1)
{
}
return 0;
}
#include<stdio.h>
#include<pthread.h>
#include<errno.h>
#include<unistd.h>
void* FUNC(void*i)
{
FILE*z_read=fopen("./1.png","r");
FILE*z_write=fopen("2.png","a+");
fseek(z_read,*(long*)i,SEEK_SET);
size_t end;
char date;
while(1)
{
end=fread(&date,1,sizeof(date),z_read);
fwrite(&date,1,1,z_write);
if(end==0)
{
printf("读取完毕\n");
fclose(z_read);
fclose(z_write);
break;
}
}
}
int main(int argc, const char *argv[])
{
FILE*r_read=fopen("./1.png","r");
if(NULL==r_read)
{
perror("fopen");
printf("%d\n",__LINE__);
return -1;
}
FILE*r_write=fopen("2.png","w");
if(NULL==r_write)
{
perror("fopen");
printf("%d\n",__LINE__);
return -1;
}
//读取前半
long LEN;
fseek(r_read,0,SEEK_END);
LEN=ftell(r_read);
fseek(r_read,0,SEEK_SET);
char date;
int pa;
long i=0;
while(i<LEN/2)
{
pa=fscanf(r_read,"%c",&date);
fprintf(r_write,"%c",date);
if(pa==EOF)
{
if(errno!=0)
{
perror("fscanf");
return -1;
}
printf("复制完成\n");
break;
}
i++;
}
fclose(r_read);
fclose(r_write);
//开线程——————————————————————————————————————
pthread_t tid;
pthread_create(&tid,NULL,FUNC,(void*)&i);
pthread_join(tid,NULL);
return 0;
}