The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как программе(Си, shell) запустить более одного процесса одн..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как программе(Си, shell) запустить более одного процесса одн..."  
Сообщение от ctac email(ok) on 24-Июн-06, 00:21 
Как сделать чтобы программа на Си или shell-скрипт мог одновременно запустить два скрипта или две программы одновременно ? ??? очень нужно плизз хелп !
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Как программе(Си, shell) запустить более одного процесса одн..."  
Сообщение от ACCA (ok) on 24-Июн-06, 00:52 
>Как сделать чтобы программа на Си или shell-скрипт мог одновременно запустить два
>скрипта или две программы одновременно ? ??? очень нужно плизз хелп

В shell поставь & после командной строки.

В C сделай fork, у родителя вызовешь одну программу, у потомка - другую.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Как программе(Си, shell) запустить более одного процесса одн..."  
Сообщение от ctac email(??) on 24-Июн-06, 12:22 
>>Как сделать чтобы программа на Си или shell-скрипт мог одновременно запустить два
>>скрипта или две программы одновременно ? ??? очень нужно плизз хелп
>
>В shell поставь & после командной строки.
>
>В C сделай fork, у родителя вызовешь одну программу, у потомка -
>другую.

Хорошо попробую !


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Как программе(Си, shell) запустить более одного процесса одн..."  
Сообщение от ctac email(??) on 24-Июн-06, 13:20 
>>Как сделать чтобы программа на Си или shell-скрипт мог одновременно запустить два
>>скрипта или две программы одновременно ? ??? очень нужно плизз хелп
>
>В shell поставь & после командной строки.
>
>В C сделай fork, у родителя вызовешь одну программу, у потомка -
>другую.

То есть если ето shell : то так чтоли ?
#!/bin/bash

grep /hda1 file1

&

grep /hda2 file2

А если Си программа

main()
{
fork  //??? как тут быть

system(" grep grep /hda1 file1 ");

system(" grep grep /hda2 file2 ");

}


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Как программе(Си, shell) запустить более одного процесса одн..."  
Сообщение от ACCA (ok) on 25-Июн-06, 09:21 
#!/bin/bash
grep /hda1 file1&
grep /hda2 file2
wait

main()
{
   int status;

   int f = fork();

   if (f>0) {
       system(" grep grep /hda1 file1 ");
       wait(&status);
   } else if (f==0) {
       system(" grep grep /hda2 file2 ");
   } else {
      perror("Can't fork");
   }
}

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Как программе(Си, shell) запустить более одного процесса одн..."  
Сообщение от phpcoder email(??) on 26-Июн-06, 07:21 
>   int f = fork();

fork() возвращает тип pid_t, а не int.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Как программе(Си, shell) запустить более одного процесса одн..."  
Сообщение от masted (ok) on 26-Июн-06, 09:01 
>>   int f = fork();
>
>fork() возвращает тип pid_t, а не int.

The GNU C Library Reference Manual :

Data Type: pid_t
The pid_t data type is a signed integer type which is capable of representing a process ID. In the GNU library, this is an int.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Как программе(Си, shell) запустить более одного процесса одн..."  
Сообщение от phpcoder email(??) on 26-Июн-06, 09:21 
>Data Type: pid_t
>The pid_t data type is a signed integer type which is capable
>of representing a process ID. In the GNU library, this is
>an int.


На другой плафторе с другим компилятором это может быть и не int вполне. Вообщем, дело вкуса, конечно, но IMHO правильнее использовать именно pid_t.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "Как программе(Си, shell) запустить более одного процесса одн..."  
Сообщение от ACCA (ok) on 28-Июн-06, 13:13 
>На другой плафторе с другим компилятором это может быть и не int
>вполне. Вообщем, дело вкуса, конечно, но IMHO правильнее использовать именно pid_t.

Не всё так просто. Если где-то баг и pid_t объявлен как unsigned int, программа отработает неверно.

Хотя полностью согласен про правильный тип. Короче, вопрос вкуса.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

9. "Как программе(Си, shell) запустить более одного процесса одн..."  
Сообщение от vic (??) on 28-Июн-06, 13:44 
>>На другой плафторе с другим компилятором это может быть и не int
>>вполне. Вообщем, дело вкуса, конечно, но IMHO правильнее использовать именно pid_t.
>
>Не всё так просто. Если где-то баг и pid_t объявлен как unsigned
>int, программа отработает неверно.
>
>Хотя полностью согласен про правильный тип. Короче, вопрос вкуса.

Встречали такой баг? Если это баг, а не реальность специализированной системы, то первый процесс который неправильно отработает это init :)

man fork:
pid_t fork(void);

Написано pid_t значит pid_t и никак иначе.

А если система стара как мир и в ней нет pid_t, то это решается посредством autoconf:
Macro: AC_TYPE_PID_T
    Если pid_t не определен, то определить pid_t равным int.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру