#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
int main(int argc, char **argv){
FILE* fp = NULL;
int fd;
FILE* fp1 = NULL;
char write_buf[] = "HELLO WORLD!";
char read_buf[16];
int n;
/*
fp = freopen("test", "w", stdout);
if (fp == NULL) {
printf("error fp = %p\n", fp);
}else{
printf(" fp = %p\n", fp);
fputs("helloworld!!!", fp);
fclose(fp);
}
*/
fd = open("test1", O_RDWR | O_TRUNC | O_CREAT, S_IRUSR |S_IWUSR);
if (fd == -1) {
printf("open test1 error!\n");
exit(1);
}
fp1 = fdopen(fd, "w+");//将文件与流关联
if (fp1 == NULL) {
printf("fdopen test1 error!\n");
exit(1);
}
n = fwrite(write_buf, 1, strlen(write_buf), fp1);
printf("write n = %d %ld %ld\n", n, sizeof(write_buf), strlen(write_buf));
fseek(fp1, strlen("HELLO "), SEEK_SET);
n = fread(read_buf, 1, sizeof(read_buf), fp1);
if (feof(fp1)) {
printf("end of file!\n");
}
printf("n =%d read_buf = %s\n", n, read_buf);
rewind(fp1);
n = fread(read_buf, 1, sizeof(read_buf), fp1);
printf("n =%d read_buf = %s\n", n, read_buf);
if (n > 0) {
read_buf[n] = '\0';
}
fclose(fp1);
return 0;
}