#include #include #include #include #include #include #include #define MCPYSIZE 2048 extern char *my_strncpy(char *dest, const char *src, size_t n); int main() { long buffer[MCPYSIZE]; int i, j, k, l, x; char *src, *dst; size_t len; int shmid; char* shmaddr; int fd; /* shmid = shmget(1, 16384, IPC_CREAT|SHM_R|SHM_W); shmaddr = (char*) shmat(shmid, NULL, SHM_RND); */ fd = open("data", O_RDONLY); dst = (char*) buffer; for (k=0; k<10000; k+=1) for (l=0; l<10; l++) for (i=0; i<8; i++) for (j=0; j<8; j++) { shmaddr = (char*) mmap(NULL, 16384*2, PROT_READ, MAP_SHARED, fd, 0); if (shmaddr == NULL) perror("zero address"); src = (char*) shmaddr + 16384 - k - i; dst = (char*) buffer + j; len = k+l; // printf("dst %p src %p n %4d\n", dst, src, len); my_strncpy(dst, src, len); for (x=0; x