Solaris 64bit

erh
Уже с Приветом
Posts: 361
Joined: 15 Mar 2000 10:01
Location: GA

Solaris 64bit

Post by erh »

Привет, народ.
Появилась необходимость читать файлы больше двух гиг. Написал простую програмку:

Code: Select all

#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(int argc, char *argv[]) {
  DIR *dirp;
  struct dirent *dp;
  struct stat st;

  dirp = opendir(".");
  while(dirp) {
    if ((dp = readdir(dirp)) != NULL) {
      if ((strcmp(dp->d_name, ".") == 0) ||
          (strcmp(dp->d_name, "..") == 0)) continue;
      stat(dp->d_name, &st);
      printf("%s %d\n", dp->d_name,st.st_size);
    } else break;
  }
  closedir(dirp);
  return 0;
}


компилирую gcc -D__sparcv9 -o t64 t64.c
запускаю "truss ./t64" - core dump на функции stat
запускаю "truss ls -l" - все работает, причем getdirents64 запускает lstat64, а не stat, как у меня.
У кого-нибудь есть идеи почему оно падает? Может я не правильно специфицирую 64bit?

спасибо, кто отзовется
dzher
Уже с Приветом
Posts: 190
Joined: 28 Jan 2002 10:01
Location: Dublin, Ireland

Post by dzher »

are you sure you use right compiler' options ?
anyway - http://gcc.gnu.org/ml/gcc/2002-12/msg00108.html

PS: I prefer to use native compilers







// :umnik1: I will always use Google before asking dump questions :D

Return to “Вопросы и новости IT”