![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Linux RedHat, Ubuntu, SUSE, Fedora, Debian, Mandriva, Slackware, Gentoo Linux, PCLinuxOS. Alle Linux-spørgsmål her! |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Install Guide: Oracle Database 11g Release 1 på Oracle Enterprise Linux 5 | iBot | Oracle Opdateringer (RSS) | 0 | 04-06-2008 05:10 AM |
| Upgrade Guide: Flytning til Oracle RAC 11g på Oracle Enterprise Linux | iBot | Oracle Opdateringer (RSS) | 0 | 04-06-2008 05:10 AM |
| Byg din egen Oracle RAC Cluster på Oracle Enterprise Linux og iSCSI | iBot | Oracle Opdateringer (RSS) | 0 | 04-06-2008 05:10 AM |
| Installere Oracle RAC 10g på Oracle Enterprise Linux bruger VMware Server | iBot | Oracle Opdateringer (RSS) | 0 | 04-06-2008 05:10 AM |
| Oracle (R) University Opsendelser Enterprise Linux uddannelse og ... - CNNMoney.com | iBot | UNIX og Linux RSS Nyheder | 0 | 11-14-2007 10:00 AM |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
||||
|
vgscan producerer ingen udgang via fil deskriptorerne på Oracle Enterprise Linux.
Jeg skrev et simpelt program, som vil skabe et barn proces til at køre en kommando, og resultatet vil blive omdirigeret til filen.
Du bedes have et kig på følgende kode -> # 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 fil Desc dup2 er% d \ n", fStdOutDesc); printf ( "Err fil Desc dup2 er% d \ n", fStdErrDesc); if ((pid \u003d fork ()) <0) / * gaffel et barn proces * / ( printf ( "FEJL: forking barn proces ikke ... \ n"); exit (1); ) else if (pid \u003d\u003d 0) / * for barnet proces: * / ( dup2 (fStdOutDesc, fileno (stdout)); dup2 (fStdErrDesc, fileno (stderr)); if (execvp (* argv, argv) <0) / * udføre kommandoen * / ( printf ( "FEJL: exec mislykkedes ... \ n"); exit (1); ) ) else / * for den forælder processen: * / ( while (wait (& status)! \u003d pid); / * afvente færdiggørelsen * / ) ) int vigtigste (void) ( char cmd [1024]; char * argv [64]; printf ( "Enter Kommando:"); scanf ( "% s", cmd &); / * værker for ls & ikke arbejde for vgscan * / printf ( "\ n"); argv [0] \u003d cmd; argv [1] \u003d '\ 0'; execute (argv); tilbagevenden 0; ) Efter at have kørt over programmet, vil det lynhurtig nemlig en indgang (kommando), hvis du indtaster "ls", produktionen af "ls" befale er omdirigeret til / tmp / outfile, mens efter ankomsten vgscan, vil der ikke være noget i enten / tmp / outfile eller / tmp / errfile. Dette problem er især med få kommandoer som vgscan, pvscan, vgdisplay, lvdisplay etc disse kommandoer giver uddata hvis løb gennem skallen. Dette er tilfældet for kun Oracle Enterprise Linux. Det samme program virker fint på andre Linux-versioner. Enhver hjælp angående dette ville være meget nyttigt. |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|