![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Linux Red Hat, Ubuntu, SUSE, Fedora, Debian, Mandriva, Slackware, Gentoo Linux, PCLinuxOS. Alle Linux vragen hier! |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Install Guide: Oracle Database 11g Release 1 op Oracle Enterprise Linux 5 | iBot | Oracle Updates (RSS) | 0 | 04-06-2008 05:10 |
| Upgrade Gids: Verhuizen naar Oracle 11g RAC op Oracle Enterprise Linux | iBot | Oracle Updates (RSS) | 0 | 04-06-2008 05:10 |
| Build Your Own Oracle RAC Cluster op Oracle Enterprise Linux en iSCSI | iBot | Oracle Updates (RSS) | 0 | 04-06-2008 05:10 |
| Installeer Oracle 10g RAC op Oracle Enterprise Linux met behulp van VMware Server | iBot | Oracle Updates (RSS) | 0 | 04-06-2008 05:10 |
| Oracle (R) Universiteit lanceert Enterprise Linux Training en ... - CNNMoney.com | iBot | UNIX en Linux RSS Nieuws | 0 | 11-14-2007 10:00 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
vgscan produceert geen output-bestand met behulp van descriptoren op Oracle Enterprise Linux.
Ik schreef een eenvoudig programma dat zal leiden tot een kind-proces om een commando uit te voeren en de output zal worden doorgestuurd naar het bestand.
Neem eens een kijkje op de volgende code -> # include <stdio.h> # include <stdlib.h> # include <sys/stat.h> # include <fcntl.h> void execute (char ** argv) ( pid_t pid; int status; int fStdOutDesc \u003d open ( "/ tmp / outfile", O_CREAT | O_RDWR, S_IREAD | S_IWRITE); int fStdErrDesc \u003d open ( "/ tmp / errfile", O_CREAT | O_RDWR, S_IREAD | S_IWRITE); printf ( "Out bestand Desc dup2 is% d \ n", fStdOutDesc); printf ( "Err bestand Desc dup2 is% d \ n", fStdErrDesc); if ((pid \u003d fork ()) <0) / * vork een kind proces * / ( printf ( "FOUT: forking kind is mislukt ... \ n"); exit (1); ) else if (pid \u003d\u003d 0) / * voor het kind-proces: * / ( dup2 (fStdOutDesc, fileno (stdout)); dup2 (fStdErrDesc, fileno (stderr)); if (execvp (* argv, argv) <0) / * uitvoeren van het commando * / ( printf ( "FOUT: exec mislukt ... \ n"); exit (1); ) ) else / * voor de ouder-proces: * / ( while (wait (& status)! \u003d pid); / * wacht op de voltooiing * / ) ) int main (void) ( char cmd [1024]; char * argv [64]; printf ( "Geef het commando:"); scanf ( "% s", & cmd); / * werkt voor LS & werkt niet voor vgscan * / printf ( "\ n"); argv [0] \u003d cmd; argv [1] \u003d '\ 0'; execute (argv); return 0; ) Na het uitvoeren van bovenstaande programma, zal het vragen om een ingang (commando), als u "ls", is de output van het "ls" commando wordt omgeleid naar / tmp / outfile, terwijl na het invoeren van vgscan, zal er niet iets in een van beide / tmp / hetbestand of / tmp / errfile. Dit probleem is bijzonder met enkele commando's zoals vgscan, pvscan, vgdisplay, lvdisplay etc dat deze commando's te geven als de uitgang liep door de dop. Dit is het geval voor Oracle Enterprise Linux. Hetzelfde programma werkt prima op andere Linux-versies. Alle hulp in verband met deze zou het zeer nuttig zijn. |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|