![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Linux RedHat, Ubuntu, SuSE, Fedora, Debian, Mandriva, Slackware, Gentoo Linux, PCLinuxOS. Alla Linux frågor här! |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Installera Guide: Oracle Database 11g Release 1 på Oracle Enterprise Linux 5 | iBot | Oracle Uppdateringar (RSS) | 0 | 04-06-2008 05:10 |
| Upgrade Guide: Att flytta till Oracle RAC 11g på Oracle Enterprise Linux | iBot | Oracle Uppdateringar (RSS) | 0 | 04-06-2008 05:10 |
| Bygg ditt eget Oracle RAC Cluster på Oracle Enterprise Linux och iSCSI | iBot | Oracle Uppdateringar (RSS) | 0 | 04-06-2008 05:10 |
| Installera Oracle RAC 10g på Oracle Enterprise Linux med VMware Server | iBot | Oracle Uppdateringar (RSS) | 0 | 04-06-2008 05:10 |
| Oracle (R) universitet lanserar Enterprise Linux Utbildning och ... - CNNMoney.com | iBot | UNIX och Linux RSS Nyheter | 0 | 11-14-2007 10:00 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
vgscan producerar resultaten fil deskriptorer på Oracle Enterprise Linux.
Jag skrev ett enkelt program som kommer att skapa ett barn process för att exekvera kommando och produktion kommer att omdirigeras till filen.
Vänligen ta en titt på följande kod -> # 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 / utfil", 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 är% d \ n", fStdOutDesc); printf ( "Err fil Desc dup2 är% d \ n", fStdErrDesc); if ((pid \u003d fork ()) <0) / * gaffel barn process * / ( printf ( "ERROR: forking barn misslyckades ... \ n"); exit (1); ) else if (pid \u003d\u003d 0) / * för barnet processen: * / ( dup2 (fStdOutDesc, FileNo (stdout)); dup2 (fStdErrDesc, FileNo (stderr)); if (execvp (* argv, argv) <0) / * utföra kommandot * / ( printf ( "ERROR: exec misslyckades ... \ n"); exit (1); ) ) else / * för den förälder processen: * / ( while (wait (& status)! \u003d pid); / * vänta för slutförande * / ) ) int viktigaste (innehåll) ( char cmd [1024]; char * argv [64]; printf ( "Enter the Command:"); scanf ( "% s", & cmd); / * fungerar för ls och inte fungerar för vgscan * / printf ( "\ n"); argv [0] \u003d cmd; argv [1] \u003d '\ 0'; execute (argv); return 0; ) Efter att ha kört över program, kommer det att fråga efter en ingång (kommando), om du skriver "ls", är produktionen av "ls" befalla omdirigeras till / tmp / utfil, medan efter inresan vgscan, kommer det inte finnas något i endera / tmp / outfile eller / tmp / errfile. Detta problem är särskilt med några kommandon såsom vgscan, pvscan, vgdisplay, lvdisplay etc. Dessa kommandon ger utdata om gick igenom skalet. Detta är fallet för endast Oracle Enterprise Linux. Samma program fungerar bra på andra Linux-versioner. Någon hjälp om detta skulle bli mycket hjälpsam. |