Иногда при разработке не на шелле возникает необходимость беспроблемно выполнить некоторое действие, для которого идеально подходит шелл. Ф-ция system не подходит, потому что нужно иметь доступ к выводу скрипта. Например, при написании на С, нужно получить самый поздний файл из определённой директории и взять первую часть его имени до точки. Я мог бы написать так:
char *dir = "my_dir";
char buf[BUF_LEN];
buf = `ls -t $dir | head -n1 | cut -f1 -d.`;
printf("Latest chunk: %s", buf);
Т.о. одна строка заменяет как минимум 10. И время на форки для внешних команд вроде ls не сильно скажется на общем времени выполнения программы, если такие вызовы шелла делаются редко. В конце концов, В/В с диска всегда будет медленным, вне зависимости от конкретного языка. Разумеется, компилятор C ничего не знает о ``, не умеет подставлять С'шные переменные в шелловскую команду и т.п. Это как раз и надо будет реализовать. Вопрос такой - имеет ли смысл такой гибрид? По-моему, получится очень удобный инструмент.
Форум —
Development



