Симлинки вместо аргументов командной строки

Mar 01, 2022 09:59

Сел сейчас переделать утилитку, вычисляющую моменты восхода/захода Солнца (ну и заодно полудня). Она нужна для того, чтобы не писать вручную, во сколько времени автоматом закрыть телескоп при наблюдениях. Ну и решил, чтобы не плодить сущности, просто сделать симлинки 'sunrise' и 'sunset' на основную утилиту 'noon ( Read more... )

c, snippets

Leave a comment

Comments 7

b0p0h0k March 1 2022, 07:27:33 UTC
А ещё можно просто использовать program_invocation_short_name.
Это, в частности, избавит вас от необходимости проверять argv[0] на NULL.

Reply

eddy_em March 1 2022, 08:36:50 UTC
Не слышал про такое, спасибо.
> необходимости проверять argv[0] на NULL
Это как? В каком случае такое может быть?

Reply

b0p0h0k March 1 2022, 08:39:51 UTC
> Это как? В каком случае такое может быть?
Злонамеренный вызов execve("foobar", NULL, NULL).

Reply

eddy_em March 1 2022, 09:16:01 UTC
Ну, за такое отвечает тот, кто это написал, так что нехай сегфолт ловит ☺

Reply


redddis March 4 2022, 20:10:52 UTC
научил бы мейкфайловой грамоте в двух словах, прокомментировал бы каждую строчку..
синтаксис чумовой. двоеточие+равно, просто равно, просто двоеточие, плюс равно, обратные апострофы, значки доллара, скобочки, амперсанды - голова кругом..

Reply

eddy_em March 4 2022, 20:59:48 UTC
Я в синтаксисе Makefile, мягко говоря, плаваю. Чуть что более-менее сложное - "гугол, помоги"… Есть талмуды, как понимать всю эту филькину грамоту, но лень же читать. Особенно когда что-то эдакое нужно раз в N лет.
А общие шаблоны я когда-то давно понаписал, теперь их везде и пользую.
Равно с разными знаками - это просто. Если ты определил уже имя переменной в env, то простое равенство вызовет ошибку, строгое (:=) поменяет ее значение, условное (?=) установит значение, лишь если не определена переменная. Конкатенация (+=) добавит что-то в переменную. Доллар - как и в баше - значение переменной. Ну и т.д.

Reply


Leave a comment

Up