Я думаю, что код, сгенерированный GCC, корректен с технической точки зрения. offset
не может быть больше, чем INT_MAX
, потому что это максимальное значение, представленное в ptrdiff_t
для этой архитектуры.
Вы можете вычислить разницу следующим образом:
uintptr_t offset = (uintptr_t)pxDesc - (uintptr_t)xNetworkBuffers;
Это все еще определяется реализацией, но позволит избежать проблемы переполнения.
Хм, обработчики протокола выглядят интересными.
Как со сказанным Mark, в обработчиках протокола Windows можно иметь дело в Обработчиках протокола уровня
ОС, может также быть сделан на уровне браузера (который предпочтен, поскольку это является кросс-платформенным и не включает установку ничего).
Сводка того, как это работает в Сводке Firefox
того, как это работает в Opera
Я, вероятно, просто установил бы Apache на серверах Samba и позволил бы ему служить файлам через HTTP. Это дало бы Вам хорошую автоиндексную страницу значения по умолчанию также, и Вы могли просто wget и связывать каждый индекс для Вашего основного списка.
Несколько других мыслей:
Чтобы заставить ссылки работать кросс-платформенные, Вы могли посмотреть на Агент пользователя или в сценарии CGI или в JavaScript и обновить Ваши URL соответственно.
, С другой стороны, если Вы хотите консолидировать доли SMB, Вы могли бы попытаться использовать Microsoft DFS (который также работает с Samba).
Вы настраиваете корень DFS и говорите ему обо всех других долях SMB/Samba, что имеете в своей среде. Клиенты тогда соединяются с корнем и видят все доли, как будто они были размещены на той единственной корневой машине; корень тихо перенаправляет клиенты к корректной системе, когда они открывают долю.
Думают о нем так же как символьные ссылки или виртуальная файловая система для SMB.
Это решило бы Вашу проблему просмотра. Я не уверен, решило ли это Ваш поиск того.