NoneDup() is a c system call that duplicates a file descriptor
1 ответ

Перенаправить в execlp()

У меня проблема с execlp. Когда я не знаю, как правильно перенаправить команду из массивов указателей на execlp. Например я хочу использовать ls -l | sort -n моя программа принимает только "ls" и "sort" int pfds[2]; pipe(pfds); child_pid = fork(); i…
08 янв '14 в 17:31
0 ответов

Почему dup2 должен быть атомарным? Что может произойти между close(oldFd) dup(newFd)?

В моем тесте операционных систем есть вопрос, в котором я не уверен: учитывая следующий код: int fd = open("File", O_RDWR); dup2(fd, 1); write(1, "Hi", 2); exit(0); (1) Как вы можете заменить вызов dup2() другими системными вызовами? Мой ответ: clos…
10 сен '16 в 15:12
1 ответ

Как dup работает с неровными массивами?

Я ожидал бы, что он будет дублировать только фрагменты вложенных массивов вместо всей глубокой копии массива, но внезапно у меня возникло сомнение.
08 окт '13 в 09:46
3 ответа

Копирование строк с использованием труб

Я написал следующий код, чтобы скопировать строку "hello world" в другой массив символов, используя fork и pipe вместо стандартных библиотечных функций или стандартных потоков ввода-вывода. Программа успешно компилируется, но я ничего не получаю. Да…
19 янв '10 в 10:16
3 ответа

dup дает разные результаты, когда хеш равен одному или двум измерениям

dup это мелкая копия, поэтому при этом: h = {one: {a:'a', b: 'b'}} h_copy = h.dup h_copy[:one][:b] = 'new b' сейчас h а также h_copy такой же: {:one=>{:a=>"a", :b=>"new b"}}Да, это правильно. Но когда h это одномерный хеш: h = {a:'a', b: 'b…
19 ноя '12 в 05:48
2 ответа

C Распечатать, какой файл находится в стандартном stdin после использования dup2

Я пишу небольшую оболочку на C, которая работает на Linux. Поскольку в этом задействовано много ошибок, я хотел бы спросить, есть ли способ напечатать то, что находится внутри позиции 0. Например, если я вызываю dup2(file_name,0), есть ли способ нап…
07 май '17 в 20:44
0 ответов

Ошибка при тестировании ресурсов: невозможно дублировать NilClass

Я использую рельсы 3.0.9 с ruby ​​1.9.2. Я делаю систему, которая позволяет пользователям помещать предметы в разные шкафы. Одной из возможностей пользователя является копирование предмета другого пользователя в его собственный шкаф (пожалуйста, ска…
01 авг '11 в 09:29
1 ответ

Копирование экземпляров модели в Rails с наследованием одной таблицы

Я имею BaseProject, ProjectTemplate а также Project class ProjectTemplate << BaseProject; end class Project << BaseProject; end Я хотел бы скопировать атрибуты project_template в новый экземпляр проекта по умолчанию. Проблема в том, если…
28 мар '13 в 13:06
8 ответов

Может кто-нибудь объяснить, что делает dup() в C?

Я знаю, что dup, dup2, dup3 "создают копию дескриптора файла oldfd" (из man-страниц). Однако я не могу переварить это. Как я знаю, файловые дескрипторы - это просто числа для отслеживания местоположения файлов и их направления (ввод / вывод). Не был…
22 окт '11 в 18:12
1 ответ

windows8 - _dup,_dup2

Я использую Win8 Consumer preview build 8250 для выполнения программы, которая нормально работает на win7. В программе используются следующие макросы / функции: #if defined(_WIN32) #include <io.h> #define streamDup(fd1) _dup(fd1) #define strea…
02 апр '12 в 07:52
1 ответ

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

У меня есть приложение с og_objects, og_actions, а также storiesЯ создал способ создать клон этого приложения. Я сейчас пытаюсь продублировать og_objects, og_actions а также stories в клон, но я застреваю. Я застреваю в двух местах. 1. Когда я созда…
07 дек '15 в 16:32
1 ответ

Глубокое копирование объектов Ruby

Я закончил pecs tic tac toe, и работал над улучшением моего компьютерного плеера. Это требует создания копий новых объектов доски из старых объектов доски. У меня проблемы с созданием глубоких копий доски. Вот код, о котором идет речь: Class Board a…
20 авг '17 в 23:33
0 ответов

Многократные перенаправления с dup и dup2

Я реализую некоторые части оболочки. Одним из них является труба. Во время синтаксического анализа я исполняю команды, перенаправляя их ввод / вывод с помощью dup2. В частности, я делаю следующее (я не пишу здесь проверку ошибок для простоты, но я п…
17 мар '15 в 19:05
1 ответ

Как поменять местами два открытых файловых дескриптора?

Для моего магистерского проекта я создаю API на C, который работает с сокетами Unix. Короче говоря, у меня есть два сокета, идентифицированные их двумя fds, на которых я назвал O_NONBLOCK connect(), На данный момент я звоню select() чтобы проверить,…
09 янв '19 в 18:36
2 ответа

Дублирующий дескриптор файла epoll

Есть ли способ дублировать дескриптор файла, созданный с помощью epoll_createтаким образом, что копия может быть изменена (добавление / удаление дескрипторов просматриваемого файла с использованием epoll_ctl) независимо. Например, я создаю дескрипто…
13 июн '16 в 10:40
2 ответа

Используя dup2 и execv для получения содержимого папки в C

Я написал программу для использования команды ls в терминале Linux, чтобы прочитать содержимое папки и записать текст из ls на экран с моей программой на Си. Вот код, который я написал: #include <stdio.h> #include <unistd.h> #include &lt…
19 янв '14 в 05:23
3 ответа

Почему close() системный вызов сбрасывает вывод?

Вот мой код: #include<stdio.h> #include<stdlib.h> #include<sys/stat.h> #include<sys/types.h> #include<fcntl.h> #include<unistd.h> #include<errno.h> int main(int argc,char *argv[]) { int oldfd; int newfd; if(…
06 дек '11 в 06:35
1 ответ

dup2 сокет к файлу

Все, зима приходит, плз согреться и сохранить здоровье. Во время медитации о работе у меня возник вопрос о функции fd dup2 . Я создаю сокет-сервер и клиент. сервер отправляет, клиент получает данные. Но теперь я хочу дублировать сокет fd сервера в ф…
11 ноя '11 в 04:54
1 ответ

Истинный клон дескриптора файла

Почему нет реального механизма клонирования дескрипторов файлов, когда это возможно, как это делается для файлов на диске. POSIX: После успешного возврата из одного из этих системных вызовов старые и новые файловые дескрипторы могут использоваться в…
2 ответа

Как заменить STDIN, STDOUT, STDERR в ruby19

В ruby18 я иногда делал следующее, чтобы получить подпроцесс с полным контролем: stdin, @stdin= IO.pipe @stdout, stdout= IO.pipe @stderr, stderr= IO.pipe @pid= fork do @stdin.close STDIN.close stdin.dup @stdout.close STDOUT.close stdout.dup @stderr.…
15 фев '12 в 11:26