Цвета дисплея выглядят сухими и менее яркими приложениями по умолчанию.

Вот минимальный пример изменения дескрипторов файлов порожденного процесса, сохраненный как foo.c:

#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <spawn.h>

int main(int argc, char* argv[], char *env[])
{
    int ret;
    pid_t child_pid;
    posix_spawn_file_actions_t child_fd_actions;
    if (ret = posix_spawn_file_actions_init (&child_fd_actions))
        perror ("posix_spawn_file_actions_init"), exit(ret);
    if (ret = posix_spawn_file_actions_addopen (&child_fd_actions, 1, "/tmp/foo-log", 
            O_WRONLY | O_CREAT | O_TRUNC, 0644))
        perror ("posix_spawn_file_actions_addopen"), exit(ret);
    if (ret = posix_spawn_file_actions_adddup2 (&child_fd_actions, 1, 2))
        perror ("posix_spawn_file_actions_adddup2"), exit(ret);

    if (ret = posix_spawnp (&child_pid, "date", &child_fd_actions, NULL, argv, env))
        perror ("posix_spawn"), exit(ret);
}

Что это делает?

  • Третьим параметром posix_spwan является указатель типа posix_spawn_file_actions_t (который вы указали как NULL). posix_spawn будет открывать, закрывать или дублировать дескрипторы файлов, унаследованные от вызывающего процесса, как указано объектом posix_spawn_file_actions_t.
  • Итак, мы начинаем с объекта posix_spawn_file_actions_t (chiild_fd_actions) и инициализируем его с помощью posix_spawn_file_actions_init().
  • Теперь функции posix_spawn_file_actions_{addopen,addclose,addup2} могут быть использованы для открытия, закрытия или дублирования дескрипторов файлов (после функций open(3), close(3) и dup2(3)) соответственно.
  • Итак, мы posix_spawn_file_actions_addopen файл по адресу /tmp/foo-log в дескриптор файла 1 (он же stdout).
  • Затем мы posix_spawn_file_actions_adddup2 fd 2 (он же stderr) на fd 1.
  • Обратите внимание, что ничего не было открыто или дублировано пока. Последние две функции просто изменили объект child_fd_actions, чтобы отметить, что эти действия должны быть предприняты.
  • И, наконец, мы используем posix_spawn с объектом child_fd_actions.

Тестируем:

$ make foo
cc     foo.c   -o foo
$ ./foo
$ cat /tmp/foo-log 
Sun Jan  3 03:48:17 IST 2016
$ ./foo +'%F %R'  
$ cat /tmp/foo-log
2016-01-03 03:48
$  ./foo -d 'foo'  
$ cat /tmp/foo-log
./foo: invalid date ‘foo’

Как видите, и stdout, и stderr порожденного процесса отправились в /tmp/foo-log.

0
14.12.2018, 08:57
1 ответ

Согласно Menu > Preference > Colour, влияет ли изменение цветового профиля на изображения, просматриваемые в средстве просмотра изображений?

Вы можете попробовать опубликовать результаты sudo inxi -Fxzd, чтобы предоставить нам более подробную информацию о вашей среде.

Я также рекомендую проверить, установлена ​​ли у вас конфигурация Xorg в /etc/X11/xorg.conf.

Если это так, проверьте и убедитесь, что параметр Gammaне настроен.

Хотя я сомневаюсь, что это поможет, так как Пикс показывает их хорошо...

0
28.01.2020, 04:07

Теги

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