PDA

Просмотр полной версии : Это глюк или так надо?



Владмир
20.08.2007, 11:35
Уважаемые Администраторы и модераторы!

Такая проблема:

Я создаю новую тему, выхожу на страницу посмотреть на неё - всё ОК.

Пока я на сайте - всё ОК.

Почему, когда я выхожу с сайта и через некоторое время посещаю его, моей недавно созданной темы уже нет?! :confused:

Это глюк или так надо? Или я чего-то не понимаю?


Пардон если что не так, но прошу обьяснить это.

Absurd
20.08.2007, 13:25
Тот постинг не соответствовал тому формату форума, каким его я бы хотел видеть, и поэтому я его удалил. И новый тоже надо бы удалить. Объяснять что-либо в таком случае я считаю бесполезным.

PS: В нике баг поправь сначала.

Владмир
21.08.2007, 08:50
Тот постинг не соответствовал тому формату форума, каким его я бы хотел видеть.

Простите, а каким должен быть формат форума?

(Я первый раз здесь, поэтому не знаю...)

P.S. подскажите, что я делаю не так.

Absurd
21.08.2007, 10:37
Простите, а каким должен быть формат форума?

(Я первый раз здесь, поэтому не знаю...)

P.S. подскажите, что я делаю не так.
Ну я бы хотел чтобы посетители знали чем отличается

char* buf;

от

char buf[1];

Во-вторых понимали что с помощью fread() надо читать по возможности сразу несколько килобайт за раз, т.к fread() завладевает Мьютексом чтобы получить эксклюзивное право на использование потока, вызывает внутреннюю однопоточную версию _fread_lk() которая вызывает POSIX операцию _read из <io.h> которая в свою очередь пользуется ReadFile() из kernel32.dll. Функции kernel32.dll занимаются только тем что упаковывают свои параметры в регистры и вызывают ядро windows через программное прерывание. Переход из пользовательского режима в режим ядра через перерывание на пару порядков медленнее обычного вызова функции. Потом она отпускает Мьютекс. Завладение мьютексом и освобождение оного это тоже функции ядра windows. Из-за буферизации fread вызывает _read только по мере необходимости, но все равно захват мьютекса мы имеем. Резюмируя: если считать к примеру 4 килобайта за раз то вместо ~4000 подобных операций мы получим одну.

В - третьих знали как перекодировать текст - это делается с помощью таблиц перекодирования типа такого
char c = ...
c = table[c];

В - четвертых не пытались делать GUI приложения в Билдере пока не научатся нормально писать консольные.

Владмир
21.08.2007, 16:56
Ну я бы хотел чтобы посетители знали чем отличается

char* buf;

от

char buf[1];

Да знаю я, чем они отличаются, вы всё не так поняли.:D



В - третьих знали как перекодировать текст - это делается с помощью таблиц перекодирования типа такого
char c = ...
c = table[c];

А на счет таблиц - спасибо, напомнили.


Во-вторых понимали что с помощью fread() надо читать по возможности сразу несколько килобайт за раз, т.к fread() завладевает Мьютексом чтобы получить эксклюзивное право на использование потока, вызывает внутреннюю однопоточную версию _fread_lk() которая вызывает...

Вам легко говорить, вы, наверное, изучали программирование в ВУЗ'е, а я ещё школьник и до всего, до чего мог допёр сам... В моей школе С/С++/С# не изучаются, потому и опыт у меня мизерный.

Поэтому и обращаюсь за помощью к вам.

Absurd
22.08.2007, 09:05
Вам легко говорить, вы, наверное, изучали программирование в ВУЗ'е, а я ещё школьник и до всего, до чего мог допёр сам... В моей школе С/С++/С# не изучаются, потому и опыт у меня мизерный.
Школьник... тогда ладно, пиши еще.