Как получить список содержимого локального файла.rpm с помощью dnf?

Это похоже на проблему в " Почему программа с fork ()иногда выводит свой вывод несколько раз? ".

Выходной буфер не очищается немедленно, когда вы выполняете printf("%d ", pid), так как строка не завершается символом новой строки, и поскольку вы не вызываете fflush(stdout). Это означает, что неочищенный буфер наследуется дочерними процессами, и вы получаете PID исходного родителя, выводимого слишком много раз, когда буфер, наконец, очищается последним printf()вызовом (, который выводит новую строку )или в конце выполнение программы.

Вставка fflush(stdout)непосредственно после этого printf()вызова (вместе с включением соответствующих заголовков и правильным вызовом wait())приведет к чему-то вроде

Αρχική τιμή δευτερολέπτων 1547400480
79301 0 check 793010
check 793010
check 793010
check 793010

Также обратите внимание, что вы получите процесс, бесконечно зацикленный в whileцикле (первого дочернего процесса, значение которого pidравно нулю ).

3
11.02.2021, 00:35
2 ответа

Вам нужно только rpm; вы можете перечислить файлы, отправленные в RPM с помощью:

rpm -qlp /path/to/your.rpm

Дополнительный -vдобавит сведения о файле:

rpm -qvlp /path/to/your.rpm

Для просмотра включенных скриптов, которые также могут создавать файлы:

rpm -qp --scripts /path/to/your.rpm
6
18.03.2021, 22:31

Я бы предложил rpmдля этой задачи:

rpm -qpl./some_package.rpm

8
18.03.2021, 22:31

Теги

Похожие вопросы