C - Это не является самым коротким, но это без рекурсий. Это также не портативно: это отказывает на Солярисе, но некоторый alloca () реализации мог бы возвратить ошибку сюда (или назвать malloc ()). Вызов к printf () необходим.
#include <stdio.h>
#include <alloca.h>
#include <sys/resource.h>
int main(int argc, char *argv[]) {
struct rlimit rl = {0};
getrlimit(RLIMIT_STACK, &rl);
(void) alloca(rl.rlim_cur);
printf("Goodbye, world\n");
return 0;
}
you can use this:
LOGFILE=$(LOGPATH) `date +'%y.%m.%d %H:%M:%S'`
NOTE (from comments):
it will cause LOGFILE to be evaluated every time while used. to avoid that:
LOGFILE=$(LOGPATH)$(shell date)
Вам необходимо использовать команду $ (Shell Raction) в Make. Если вы используете работу
, то команда оболочки будет оцениваться каждый раз. Если вы пишете в файл журнала, вы не хотите, чтобы имя файла журнала меняется каждый раз, когда вы получаете доступ к нему в одном команде Cправьте.
LOGPATH = logs
LOGFILE = $(LOGPATH)/$(shell date --iso=seconds)
test_logfile:
echo $(LOGFILE)
sleep 2s
echo $(LOGFILE)
Это выводится:
echo logs/2010-01-28T14:29:14-0800
logs/2010-01-28T14:29:14-0800
sleep 2s
echo logs/2010-01-28T14:29:14-0800
logs/2010-01-28T14:29:14-0800