MacCentre.ru Форум Форум по компьютерам Mac, Mac OS X и продукции Apple
|
Автор |
Сообщение |
anonymous.ru
Репутация: 0
Зарегистрирован: 30.04.2011 Сообщения: 3
|
Добавлено: Сб Апр 30, 2011 16:45 странная работа вызова lseek и команды mv, баг или фича? |
|
|
У кого под рукой есть MacOS проверьте пожалуйста работу программы
Код: |
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
int main() {
int fd;
ssize_t rwcount;
off_t fdseek;
char rbuff[10];
if ((fd=creat("newfile",0600))==-1) {
perror("create error");
return 1;
}
if ((rwcount=write(fd,"unix",4))==-1) {
perror("write error");
return 1;
}
close(fd);
if ((fd=open("newfile",O_RDONLY))==-1) {
perror("open error");
return 1;
}
if ((fdseek=lseek(fd,-1,SEEK_END))==-1) {
perror("lseek error");
return 1;
}
fprintf(stderr,"offset = %d \n",fdseek);
if ((rwcount=read(fd,rbuff,1))==-1) {
perror("read error");
return 1;
}
fprintf(stderr,"read count = %d \n",rwcount);
if (rwcount>0) {
fprintf(stderr,"read buffer = ");
write(2,rbuff,rwcount);
fprintf(stderr,"\n");
}
return 0;
}
|
Под линуксом выводит следующие:
Код: | offset = 3
read count = 1
read buffer = x |
Под MacOS read возвращал 0 (сейчас проверить не на чем).
Теперь про mv
в линуксе вот такое перемещение файла срабатывает
Код: |
$ mkdir d1 d2
$ touch d1/f1
$ chmod 0000 d1/f1
$ chmod 0300 d1 d2
$ mv d1/f1 d2
|
а в MacOS наблюдалось ужасное: файл из d1 пропадал, а в d2 не появлялся.
Хотя вот так все сработало:
Код: |
$ mkdir d1 d2
$ touch d1/f1
$ chmod 0000 d1/f1
$ chmod 0300 d1 d2
$ ln d1/f1 d2
$ rm d1/f1
|
|
|
Вернуться к началу |
|
anonymous.ru
Репутация: 0
Зарегистрирован: 30.04.2011 Сообщения: 3
|
Добавлено: Сб Май 07, 2011 21:36
|
|
|
Проблема с lseek проявляется в 10.7.0
В 10.6.7 все работает правильно.
Странная работа mv была в дрогой системе, версию узнаю в пятницу. |
|
Вернуться к началу |
|
Zlyden
Репутация: +209/–1
Зарегистрирован: 13.07.2001 Сообщения: 10422 Откуда: Саратов
|
Добавлено: Сб Май 07, 2011 23:30
|
|
|
anonymous.ru писал(а): | Проблема с lseek проявляется в 10.7.0 |
Нет такой версии системы еще. Пишите лучше что-то типа "11A390". |
|
Вернуться к началу |
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы можете добавлять приложения в этом форуме Вы можете скачивать файлы в этом форуме
|
Powered by phpBB © 2001, 2005 phpBB Group
|