Для получения полностью определенного названия машины мы должны сначала получить локальное имя хоста и затем поиск каноническое имя.
самый легкий способ сделать это первым получением локального имени хоста с помощью uname()
или gethostname()
и затем выполняя поиск с gethostbyname()
и смотря h_name
член структуры, которую это возвращает. При использовании ANSI c Вы должны использование uname()
вместо gethostname()
.
Пример:
char hostname[1024];
hostname[1023] = '\0';
gethostname(hostname, 1023);
printf("Hostname: %s\n", hostname);
struct hostent* h;
h = gethostbyname(hostname);
printf("h_name: %s\n", h->h_name);
, К сожалению, gethostbyname()
удерживается от использования в текущей спецификации POSIX, поскольку она не играет хорошо с IPv6. Более современная версия этого кода использовала бы getaddrinfo()
.
Пример:
struct addrinfo hints, *info, *p;
int gai_result;
char hostname[1024];
hostname[1023] = '\0';
gethostname(hostname, 1023);
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_UNSPEC; /*either IPV4 or IPV6*/
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_CANONNAME;
if ((gai_result = getaddrinfo(hostname, "http", &hints, &info)) != 0) {
fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(gai_result));
exit(1);
}
for(p = info; p != NULL; p = p->ai_next) {
printf("hostname: %s\n", p->ai_canonname);
}
freeaddrinfo(info);
, Конечно, это будет только работать, если машина будет иметь FQDN для предоставления - в противном случае, результат эти getaddrinfo()
заканчивает тем, что совпал с неполным именем хоста.
Существует внешняя задача Ant для создания LaTeX PDF, хотя сайт на немецком языке.
Чтобы использовать ее, загрузите jar-файл в папку на вашем компьютере. , затем определите taskdef следующим образом:
<taskdef name="latex" classname="de.dokutransdata.antlatex.LaTeX"
classpath="/path/to/ant/lib/ant_latex.jar"/>
Затем, чтобы использовать его, определите цель следующим образом:
<target name="doLaTeX">
<latex
latexfile="${ltx2.file}"
verbose="on"
clean="on"
pdftex="off"
workingDir="${basedir}"
/>
</target>
Где ltx2.file - файл для обработки.
Это ссылка на страницу с инструкциями с перечислением параметров. Если вам нужны другие варианты, мой немецкий будет достаточно сносным, чтобы объяснить, возможно.
Существует также плагин maven для LaTeX , но я не могу найти никакой документации.
Если вы знакомы с python, этот пост в блоге может быть интересным
РЕДАКТИРОВАТЬ : Кроме того, я предполагаю, что вы используете какую-то систему контроля версий, и Я не могу сказать наверняка, но я использую git для управления всеми моими латексными документами, и, возможно, можно будет использовать какой-то хук после фиксации для выполнения сценария для восстановления документа. Это будет зависеть от того, как структурировано ваше хранилище ... просто подумайте вслух, так сказать.
Я подробно рассмотрел большое количество систем сборки для латекса в этом вопросе , но в вашем случае он немного отличается. Я думаю, вам нужен каучук или латекс. Файл latex-makefile кажется хорошей идеей, но поддерживает сборку только с помощью postscript, что может не относиться к вашему процессу сборки.
В общем, по этой причине рекомендуется оставлять сгенерированные файлы вне контроля версий. Хорошее исключение - это когда специальные инструменты сборки не широко доступны, и ваша ситуация кажется похожей. Вы могли бы лучше использовать фиксацию для автоматического построения при фиксации.
Думаю, я должен также указать, что фиксация чего-либо без предварительной сборки и проверки - это смертельный грех, поэтому лучшим решением может быть искоренение этого .
Не пробовал, но я помню , что видел сообщение в блоге о i t.