Я перенаправляю вывод stdin из команды ls -l при запуске в командной строке и хочу распечатать ее результаты.
Так что после запуска ls -l я получаюследующий вывод:
total 519
-rw------- 1 jeff dev 1274 22 Jun 14:52 prinprog
-rwx---xr-- 1 jeff dev 2410 6 Apr 12:10 temp.txt
-rwxr----x 1 jeff dev 8128 1 Feb 2013 yyz
-rw-r--r-- 1 jeff dev 98 15 Feb 2013 yyz.c
Теперь после компиляции моей программы на C я делаю ls -l |./testing и я фактически изменили стандартный ввод с клавиатуры на тот, который когда-либо выводил команда ls -l.Теперь, что я хочу сделать в моей программе на C, это распечатать вывод, полученный командой ls -l.
Я делаю это с помощью scanf () и цикла while.У меня проблемы с форматированием текста.Эта первая строка «всего 519» для меня отчасти бесполезна, но она отбрасывает меня.
#include <stdio.h>
int main() {
char permissions[10];
int num;
char user[20];
char random[20];
int fileSize;
while(scanf("%s %d %s %s %d", permissions, &num, user, random, &fileSize) != EOF) {
printf("%s %d %s %s %d\n", permissions, num, user, random, fileSize);
}
return 0;
}