Похоже, что некоторые объяснения в порядке. Этот код
typedef struct {
//...
} nrf_twi_mngr_transfer_t;
уже определяет тип , который можно использовать напрямую. Напротив,
struct nrf_twi_mngr_transfer_struct {
//...
};
определит имя структуры, и для доступа к нему вам нужно будет указать, что вы ссылаетесь на структуру.
В результате, учитывая два приведенных выше определения, вы должны определить свои массивы по-разному:
nrf_twi_mngr_transfer_t arr[10]; // if using typedef
struct nrf_twi_mngr_transfer_struct arr2[10]; // if using struct with no typedef
И на случай, если вам интересно,
struct {
//...
} nrf_twi_mngr_transfer_obj;
Определяет объект анонимного типа структуры.
Это может помочь вам в дальнейшем ...
<cfscript>
machineName = createObject("java", "java.net.InetAddress").localhost.getCanonicalHostName();
hostaddress = createObject("java", "java.net.InetAddress").localhost.getHostAddress();
</cfscript>
<cfdump var="#machineName#"><br />
<cfdump var="#hostaddress#"><br />
Вы можете использовать серверные переменные , например
server.coldfusion.appserver
server.coldfusion.expiration
server.coldfusion.productlevel
server.coldfusion.productname
server.coldfusion.productversion
server.coldfusion.rootdir
server.coldfusion.serialnumber
server.coldfusion.supportedlocales
server.os.additionalinformation
server.os.arch
server.os.buildnumber
server.os.name
server.os.version
, чтобы настроить ваш код для конкретных платформ. Выполните
, чтобы узнать, что применимо к вашей версии Coldfusion.
Вы можете получить имя хоста с помощью вызова Java:
<cfscript>
machineName = createObject("java", "java.net.InetAddress").localhost.getHostName();
instanceName = createObject("java", "jrunx.kernel.JRun").getServerName();
</cfscript>
Я полагаю, что CGI.SERVER_NAME даст вам то, что вы хотите.
Редактировать за комментарий: Возможно, вы сможете сделать что-то более «низкое» ...
<cfset inet = CreateObject("java", "java.net.InetAddress")>
<cfdump var = "#inet.getLocalhost().gethostname()#">
(здесь нет сервера CF на работе, поэтому я не могу это проверить).
Еще одно место для поиска информации о выполняющемся процессе JRun - это следующий пример:
<cfset oErrorJRun = createObject("java","jrunx.kernel.JRun")/>
<cfset strServerName = oErrorJRun.ServerName />
Это даст вам имя экземпляра JRun, в котором выполняется код. Мы сталкивались со случаями, когда в нашей кластерной среде IIS на одном узле регистрировал попадание страницы, но JRun на другом узле обрабатывал запрос. Иногда JRun одного узла перестает отвечать, и нам нужно перезапустить некоторые службы, чтобы вернуть трафик на этот узел. Я использую приведенный выше код в моем плагине обработчика ошибок, чтобы вставить имя сервера в электронное письмо, которое я отправляю администраторам, и включить его в имя файла, в котором я пишу отладочную информацию.