MacCentre.ru Форум
Форум по компьютерам Mac, Mac OS X и продукции Apple
 
ПравилаПравила   FAQFAQ   ПоискПоиск  РегистрацияРегистрация   ПрофильПрофиль   Войти и проверить ЛСВойти и проверить ЛС   ВходВход 
странная работа вызова lseek и команды mv, баг или фича?
Начать новую тему   Ответить на тему Список форумов MacCentre.ru Форум » Программирование и Beta-тестирование   
Автор Сообщение
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
Сообщения: 10420
Откуда: Саратов

СообщениеДобавлено: Сб Май 07, 2011 23:30
Ответить с цитатой

anonymous.ru писал(а):
Проблема с lseek проявляется в 10.7.0


Нет такой версии системы еще. Пишите лучше что-то типа "11A390".
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему Список форумов MacCentre.ru Форум » Программирование и Beta-тестирование Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


Связь с администраторами

Powered by phpBB © 2001, 2005 phpBB Group