int main() { char *fn="F.$LN"; char *string="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz"; int result; struct stat stbuff; long offset; char buff[1024]; char readbuff[500]; int j; int fd=creatnew(fn, S_IREAD |S_IWRITE); if (fd > -1) { printf("Konnte Date erzeugen\n"); close(fd); } else { printf("Konnte Datei nicht erzeugen\n"); } fd = open(fn, O_RDWR|O_CREAT|O_TRUNC|O_DENYNONE, 0666); memset(buff, 0, sizeof(buff) ); strcpy(buff, string); write(fd, buff, strlen(buff)); close(fd); _chmod(fn, 1, _chmod(fn, 0) | 0x80 ); stat(fn, &stbuff); printf("Filesize ber stat =%ld\n", stbuff.st_size); fd = open(fn, O_RDWR | O_BINARY |O_DENYNONE); offset = lseek(fd, 0L, SEEK_END); printf("Filesize ber lseek =%ld\n", offset); write(fd, buff, strlen(buff)); lseek(fd, 0L, SEEK_SET); for (j=0; j < strlen(buff)*2; j++){ read(fd, readbuff, 1); printf("BUFF = %c\n", readbuff[0]); } lseek(fd, 1L, SEEK_SET); for (j = 0; j < 20; j++){ write(fd, buff+j, 1); } for (j=0; j <60; j++){ lseek(fd, (long) j, SEEK_SET); read(fd, readbuff, 2); printf("BUFF = %c, %c \n", readbuff[0], readbuff[1]); } lseek(fd, 10L, SEEK_SET); read(fd, buff, 1); printf("BUFF[10] = %c\n", buff[0]); result=lock(fd, 100L, 1L); printf("lock result = %d\n", result); result=unlock(fd, 100L, 1L); printf("unlock result = %d\n", result); close(fd); fd = open(fn, O_BINARY|O_RDWR|O_CREAT|O_TRUNC|O_DENYNONE, 0666); if (fd > -1) { int bufflen; strcpy(buff, "d:..\\marlib\\c0l.obj+"); strcat(buff, "\r\n"); strcat(buff, "x"); strcat(buff, "\r\n"); strcat(buff, "x"); strcat(buff, "\r\n"); strcat(buff, "/c/x"); strcat(buff, "\r\n"); strcat(buff, "d:..\\marlib\\EMU.LIB+"); strcat(buff, "\r\n"); strcat(buff, "d:..\\marlib\\mathl.lib+"); strcat(buff, "\r\n"); strcat(buff, "d:..\\marlib\\cl.lib"); bufflen=strlen(buff); printf("bufflen = %d, buff=%s\n", bufflen, buff); write(fd, buff, bufflen); close(fd); fd = open(fn, O_TEXT|O_RDONLY); if (fd > -1) { char *p=readbuff; int anz = 0; memset(readbuff, 0, sizeof(readbuff) ); while (read(fd, p, 1) == 1){ anz++; p++; } printf("read = %d, buff=%s\n", anz, readbuff); close(fd); } } /* result = detach(1); printf("Detach result=0x%x", result); */ return(0); }