LINUX.ORG.RU

выполнение команд линукса в си.

 , , ,


0

1

Почёсывая репу и доставая запросами гугл, на тему $сабжа, вывел вот нижеследующий (работающий, что важно для меня) код:

char buf[256];
sprintf(buf, "/bin/ls -la ");
system(buf);
Что здесь лишнее и почему ?
Прошу сильно не пинать, делаю первые шаги, пока только калькулятор освоил.

★★★★★

В данном конкретном коде лишнее — строка и sprintf. Что мешает написать system(«/bin/ls -la»). Полный путь к ls — это так задумано?

А вообще, такие вещи как system стоит использовать как можно реже.

buddhist ★★★★★
()

Зачем буфер sprintf-ом заполняеш? Можно через char * buf = "..." или напраямую строку передавать.

Knopka
()
Ответ на: комментарий от buddhist

Полный путь к ls — это так задумано?

ну я подумал что без него (пути) никак.

Что мешает написать system(«/bin/ls -la»).

необразованность =)

dada ★★★★★
() автор топика
Ответ на: комментарий от qulinxao

[code] int main(void){ return system(«/bin/ls -la»); } [/code] спасибо, а я сидел и парился, зачем тама buf.

dada ★★★★★
() автор топика
Ответ на: комментарий от dada

я подумал что без него (пути) никак

В system существуют все те переменные окружения, что и в текущем шелле.

buddhist ★★★★★
()
Ответ на: комментарий от qulinxao

эксперемент(онли) и ведёт к неследованию стандартам и деградации протоколов

Значит, русский язык ты учил экспериментально.

anonymous
()
Ответ на: комментарий от anonymous

увага русский язык большее время своего существования был устным.

русский язык появился без постановления комитета по языку.

зачем смешивать естественный яз и протокол управление железкой?

qulinxao ★★☆
()
Ответ на: комментарий от buddhist

ещё вопрос. помоги с операторами для работы с текстом. какие использовать ?
а если конкретнее, то мне нужно подсчитать количество пробелов или определённых букв в строке.
Только готовый код не надо давать, ведь самообразования ради спрашиваю.
Заранее спасибо, знаю, надоел глупыми вопросами.

dada ★★★★★
() автор топика
Ответ на: комментарий от dada

это уже пояснили.

не то пояснили. гугли sprintf VS snprintf. учись изначально писать безопасный код.

exception13 ★★★★★
()
Ответ на: комментарий от buddhist

В чем особая проблема-то?

Повторюсь, в безграмотности.
Мне что-то вроде awk-a надобно.

dada ★★★★★
() автор топика
Ответ на: комментарий от dada

Мне что-то вроде awk-a надобно
awk -F, '{r += NF-1;} END {print «Text contains », r, " commas"}'

kim-roader ★★
()
Ответ на: комментарий от dada

Может быть лучше будет почитать Кернигана и Ричи?

Yareg ★★★
()

Возвращайся к букварю

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.