Re: Платформо-независимые типы в ANSI C.

2012-10-09 Пенетрантность Oleksandr Gavenko
On 2012-10-07, yuri.nefe...@gmail.com wrote:

 On Sun, 7 Oct 2012, Dmitrii Kashin wrote:

 Я слышал, что существуют типы, однозначно определяющие количество бит в
 объявляемой сущности (типа uint32), но не смог найти, где они
 определяются.

  stdint.h

  А вообще очень полезный ресурс - wikipedia )
  https://en.wikipedia.org/wiki/C_data_types

А еще полезней:

  http://www.open-std.org/jtc1/sc22/wg14/

откуда вытягивается PDF файл:

  http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf

и далее поиск по документы...

 В общем, я пишу структуры для сетевого взаимодействия двух машин, одна из
 которых 32х-разрядная, а другая - 64х-разрядная. Мне нужно, чтобы структуры
 выглядели побитово одинакого на обеих платформах.

У меня возник встречный вопрос, POSIX определяет 4 функции в вариантах
16-/32-бит:

  http://pubs.opengroup.org/onlinepubs/9699919799/functions/htonl.html
htonl, htons, ntohl, ntohs - convert values between host
and network byte order

А как быть с 64-битами? Или в сетевом стеке нет полей с 64-битами...?

-- 
Best regards!


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87zk3vixem@gavenkoa.example.com



Re: Платформо-независимые типы в ANSI C.

2012-10-09 Пенетрантность Eugene Berdnikov
On Tue, Oct 09, 2012 at 04:32:17PM +0300, Oleksandr Gavenko wrote:
 У меня возник встречный вопрос, POSIX определяет 4 функции в вариантах
 16-/32-бит:
 
   http://pubs.opengroup.org/onlinepubs/9699919799/functions/htonl.html
 htonl, htons, ntohl, ntohs - convert values between host
 and network byte order
 
 А как быть с 64-битами? Или в сетевом стеке нет полей с 64-битами...?

 Да, полей с 64 битами в сетях нет. :))) Когда люди доросли до 64 бит, они
 уже избавились от детских глупостей вокруг byte ordering. К тому времени
 как раз вымерли последние компьютеры с не-8-битными байтами и/или байтами
 переменной длины, так что сейчас никого уже не волнуют проблемы упаковки
 36 или 48 бит. Что не мешает изернету работать с 48-битным mac-адресом.
-- 
 Eugene Berdnikov


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20121009141004.ga2...@sie.protva.ru



Re: Платформо-независимые типы в ANSI C.

2012-10-09 Пенетрантность yuri . nefedov

On Tue, 9 Oct 2012, Oleksandr Gavenko wrote:


On 2012-10-07, yuri.nefe...@gmail.com wrote:


On Sun, 7 Oct 2012, Dmitrii Kashin wrote:


Я слышал, что существуют типы, однозначно определяющие количество бит в
объявляемой сущности (типа uint32), но не смог найти, где они
определяются.


 stdint.h

 А вообще очень полезный ресурс - wikipedia )
 https://en.wikipedia.org/wiki/C_data_types


А еще полезней:

 http://www.open-std.org/jtc1/sc22/wg14/

откуда вытягивается PDF файл:

 http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf

и далее поиск по документы...



 Это для мазохистов.
 Стандарты очень полезны, но для чтения не пригодны.
 Да и структуру языка они вряд ли позволят понять.

 Ю.

 p.s. Для любителей есть книга:
 Jones_Derek.M The New C Standard: An Economic and Cultural Commentary
 Это стандарт С99 с оргинальными комментариями автора.
 Причем комментарии выдержаны в том же стиле что и изложение стандарта.

 There are more ways of killing a cat than choking it with cream.
Charles Kingsley

Re: Платформо-независимые типы в ANSI C.

2012-10-09 Пенетрантность Oleksandr Gavenko
On 2012-10-09, yuri.nefe...@gmail.com wrote:

 On Tue, 9 Oct 2012, Oleksandr Gavenko wrote:
 А еще полезней:

  http://www.open-std.org/jtc1/sc22/wg14/

 откуда вытягивается PDF файл:

  http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf

 и далее поиск по документы...


  Это для мазохистов.
  Стандарты очень полезны, но для чтения не пригодны.
  Да и структуру языка они вряд ли позволят понять.

  Ю.

  p.s. Для любителей есть книга:
  Jones_Derek.M The New C Standard: An Economic and Cultural Commentary
  Это стандарт С99 с оргинальными комментариями автора.
  Причем комментарии выдержаны в том же стиле что и изложение стандарта.

  There are more ways of killing a cat than choking it with cream.
   Charles Kingsley

Я упомянул о ней в другом ответе...

-- 
Best regards!


Re: Платформо-независимые типы в ANSI C.

2012-10-08 Пенетрантность Артём Н.
08.10.2012 00:24, Eugene Berdnikov пишет:
 On Sun, Oct 07, 2012 at 11:48:31PM +0400, yuri.nefe...@gmail.com wrote:
 Я слышал, что существуют типы, однозначно определяющие количество бит в
 объявляемой сущности (типа uint32), но не смог найти, где они
 определяются.

 Собственно, не знает ли здесь кто ответа на данный ворос?
 Ну или хотя бы направьте меня в нужныю рассылку, я буду очень
 признателен.


  stdint.h
 
  Для портабильности лучше следовать стандарту C99 и использовать inttypes.h:
  он не только включает stdint.h, но ещё содержит спецификаторы формата.
 
  А вообще очень полезный ресурс - wikipedia )
  https://en.wikipedia.org/wiki/C_data_types

У меня похожий вопрос. Только по функциям.
Мне требуется преобразовывать 32-х битное время в строковый формат.
Какой функцией это возможно сделать на 64-х битной машине?
Сейчас я использую в своей глюкалке asctime(gmtime()), но на 64-х битной машине
gmtime требует 8 байт.
Как возможно преобразовать 32-х битное время?


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/50732147.2010...@yandex.ru



Re: Платформо-независимые типы в ANSI C.

2012-10-08 Пенетрантность yuri . nefedov

On Mon, 8 Oct 2012, Артём Н. wrote:


 А вообще очень полезный ресурс - wikipedia )
 https://en.wikipedia.org/wiki/C_data_types


У меня похожий вопрос. Только по функциям.
Мне требуется преобразовывать 32-х битное время в строковый формат.
Какой функцией это возможно сделать на 64-х битной машине?
Сейчас я использую в своей глюкалке asctime(gmtime()), но на 64-х битной машине
gmtime требует 8 байт.
Как возможно преобразовать 32-х битное время?



 Википедию видимо лень читать.
 https://en.wikipedia.org/wiki/C_date_and_time_functions

   time_t t = time(NULL);
   printf( %s\n, asctime(gmtime(t)));

 Работает отлично на любой платформе.

Ю.

Re: Платформо-независимые типы в ANSI C.

2012-10-08 Пенетрантность Артём Н.
08.10.2012 23:39, yuri.nefe...@gmail.com пишет:
 On Mon, 8 Oct 2012, Артём Н. wrote:
 
  А вообще очень полезный ресурс - wikipedia )
  https://en.wikipedia.org/wiki/C_data_types

 У меня похожий вопрос. Только по функциям.
 Мне требуется преобразовывать 32-х битное время в строковый формат.
 Какой функцией это возможно сделать на 64-х битной машине?
 Сейчас я использую в своей глюкалке asctime(gmtime()), но на 64-х битной 
 машине
 gmtime требует 8 байт.
 Как возможно преобразовать 32-х битное время?

 
  Википедию видимо лень читать.
  https://en.wikipedia.org/wiki/C_date_and_time_functions
 
time_t t = time(NULL);
printf( %s\n, asctime(gmtime(t)));
 
  Работает отлично на любой платформе.
 
 Ю.
Под утро до меня дошло, что я спросил глупость.
Занят борьбой с утечкой и плохо соображаю. :-(
Там просто именно 32-х битное время, которое отсылают устройства, грубо говоря.
Изначально я на 32-х битной системе всё пишу, но принёс, скомпилил у себя.
Только сейчас дошло, что нужно дополнительную переменную time_t завести в
функциях отображения, инициализировав её полученным  32-х битным временем 
(uint32).
Спасибо.


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/50738e6c.7040...@yandex.ru



Платформо-независимые типы в ANSI C.

2012-10-07 Пенетрантность Dmitrii Kashin

Еще раз приветствую сообщество Debian.

Я понимаю, что вопрос скорее к программистам, но я не знаю рассылок для
программистов, а тут очень много квалифицированного народа.

В общем, я пишу структуры для сетевого взаимодействия двух машин, одна
из которых 32х-разрядная, а другая - 64х-разрядная. Мне нужно, чтобы
структуры выглядели побитово одинакого на обеих платформах.

Я слышал, что существуют типы, однозначно определяющие количество бит в
объявляемой сущности (типа uint32), но не смог найти, где они
определяются.

Собственно, не знает ли здесь кто ответа на данный ворос?
Ну или хотя бы направьте меня в нужныю рассылку, я буду очень
признателен.

-- 
**
*  jabber:  free...@jabber.mipt.ru   *
*   Registered linux user #546240*
**


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87r4pacch6@ws00.freehck.ru



Re: Платформо-независимые типы в ANSI C.

2012-10-07 Пенетрантность yuri . nefedov

On Sun, 7 Oct 2012, Dmitrii Kashin wrote:



Еще раз приветствую сообщество Debian.

Я понимаю, что вопрос скорее к программистам, но я не знаю рассылок для
программистов, а тут очень много квалифицированного народа.

В общем, я пишу структуры для сетевого взаимодействия двух машин, одна
из которых 32х-разрядная, а другая - 64х-разрядная. Мне нужно, чтобы
структуры выглядели побитово одинакого на обеих платформах.

Я слышал, что существуют типы, однозначно определяющие количество бит в
объявляемой сущности (типа uint32), но не смог найти, где они
определяются.

Собственно, не знает ли здесь кто ответа на данный ворос?
Ну или хотя бы направьте меня в нужныю рассылку, я буду очень
признателен.



 stdint.h

 А вообще очень полезный ресурс - wikipedia )
 https://en.wikipedia.org/wiki/C_data_types

 Ю.

Re: Платформо-независимые типы в ANSI C.

2012-10-07 Пенетрантность Eugene Berdnikov
On Sun, Oct 07, 2012 at 11:48:31PM +0400, yuri.nefe...@gmail.com wrote:
 Я слышал, что существуют типы, однозначно определяющие количество бит в
 объявляемой сущности (типа uint32), но не смог найти, где они
 определяются.
 
 Собственно, не знает ли здесь кто ответа на данный ворос?
 Ну или хотя бы направьте меня в нужныю рассылку, я буду очень
 признателен.
 
 
  stdint.h

 Для портабильности лучше следовать стандарту C99 и использовать inttypes.h:
 он не только включает stdint.h, но ещё содержит спецификаторы формата.

  А вообще очень полезный ресурс - wikipedia )
  https://en.wikipedia.org/wiki/C_data_types
-- 
 Eugene Berdnikov


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20121007202438.ga4...@sie.protva.ru



Re: Платформо-независимые типы в ANSI C.

2012-10-07 Пенетрантность Dmitrii Kashin
Eugene Berdnikov b...@protva.ru writes:

 On Sun, Oct 07, 2012 at 11:48:31PM +0400, yuri.nefe...@gmail.com wrote:
 Я слышал, что существуют типы, однозначно определяющие количество бит в
 объявляемой сущности (типа uint32), но не смог найти, где они
 определяются.
 
  stdint.h

  Для портабильности лучше следовать стандарту C99 и использовать inttypes.h:
  он не только включает stdint.h, но ещё содержит спецификаторы формата.

  А вообще очень полезный ресурс - wikipedia )
  https://en.wikipedia.org/wiki/C_data_types

Большое спасибо!

-- 
**
*  jabber:  free...@jabber.mipt.ru   *
*   Registered linux user #546240*
**


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87ipamc8d9@ws00.freehck.ru