Search Results

Search found 43 results on 2 pages for 'execvp'.

Page 1/2 | 1 2  | Next Page >

  • Does control return after "execvp()"

    - by Ajay Garg
    "execvp()" replaces the current program with the to-be-execed program (of course in the same process context). So, putting, say, any printf() calls after execvp() won't work. That is what the docs say, and I have verified it as well. But then, why is _exit() needed..? Does it so happen that the control DOES return to statements post execvp() ? I will be grateful for any pointers. Thanks

    Read the article

  • Weird behavior of fork() and execvp() in C

    - by ron
    After some remarks from my previous post , I made the following modifications : int main() { char errorStr[BUFF3]; while (1) { int i , errorFile; char *line = malloc(BUFFER); char *origLine = line; fgets(line, 128, stdin); // get a line from stdin // get complete diagnostics on the given string lineData info = runDiagnostics(line); char command[20]; sscanf(line, "%20s ", command); line = strchr(line, ' '); // here I remove the command from the line , the command is stored in "commmand" above printf("The Command is: %s\n", command); int currentCount = 0; // number of elements in the line int *argumentsCount = &currentCount; // pointer to that // get the elements separated char** arguments = separateLineGetElements(line,argumentsCount); printf("\nOutput after separating the given line from the user\n"); for (i = 0; i < *argumentsCount; i++) { printf("Argument %i is: %s\n", i, arguments[i]); } // here we call a method that would execute the commands pid_t pid ; if (-1 == (pid = fork())) { sprintf(errorStr,"fork: %s\n",strerror(errno)); write(errorFile,errorStr,strlen(errorStr + 1)); perror("fork"); exit(1); } else if (pid == 0) // fork was successful { printf("\nIn son process\n"); // if (execvp(arguments[0],arguments) < 0) // for the moment I ignore this line if (execvp(command,arguments) < 0) // execute the command { perror("execvp"); printf("ERROR: execvp failed\n"); exit(1); } } else // parent { int status = 0; pid = wait(&status); printf("Process %d returned with status %d.", pid, status); } // print each element of the line for (i = 0; i < *argumentsCount; i++) { printf("Argument %i is: %s\n", i, arguments[i]); } // free all the elements from the memory for (i = 0; i < *argumentsCount; i++) { free(arguments[i]); } free(arguments); free(origLine); } return 0; } When I enter in the Console : ls out.txt I get : The Command is: ls execvp: No such file or directory In son process ERROR: execvp failed Process 4047 returned with status 256.Argument 0 is: > Argument 1 is: out.txt So I guess that the son process is active , but from some reason the execvp fails . Why ? Regards REMARK : The ls command is just an example . I need to make this works with any given command . EDIT 1 : User input : ls > qq.out Program output : The Command is: ls Output after separating the given line from the user Argument 0 is: > Argument 1 is: qq.out In son process >: cannot access qq.out: No such file or directory Process 4885 returned with status 512.Argument 0 is: > Argument 1 is: qq.out

    Read the article

  • pthread and recursively calling execvp in C

    - by eduke
    To begin I'm sorry for my english :) I looking for a way to create a thread each time my program finds a directory, in order to call the program itself but with a new argv[2] argument (which is the current dir). I did it successfully with fork() but with pthread I've some difficulties. I don't know if I can do something like that : #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/wait.h> #include <dirent.h> int main(int argc, char **argv) { pthread_t threadID[10] = {0}; DIR * dir; struct dirent * entry; struct stat status; pthread_attr_t attr; pthread_attr_init(&attr); int i = 0; char *res; char *tmp; char *file; if(argc != 3) { printf("Usage : %s <file> <dir>\n", argv[0]); exit(EXIT_FAILURE); } if(stat(argv[2],&status) == 0) { dir = opendir(argv[2]); file = argv[1]; } else exit(EXIT_FAILURE); while ((entry = readdir(dir))) { if (strcmp(entry->d_name, ".") && strcmp(entry->d_name, "..")) { tmp = malloc(strlen(argv[2]) + strlen(entry->d_name) + 2); strcpy(tmp, argv[2]); strcat(tmp, "/"); strcat(tmp, entry->d_name); stat(tmp, &status); if (S_ISDIR(status.st_mode)) { argv[2] = tmp; pthread_create( &threadID[i], &attr, execvp(argv[0], argv), NULL); printf("New thread created : %d", i); i++; } else if (!strcmp(entry->d_name, file)) { printf(" %s was found - Thread number = %d\n",tmp, i); break; } free(tmp); } } pthread_join( threadID[i] , &res ); exit(EXIT_SUCCESS); } Actually it doesn't works : pthread_create( &threadID[i], &attr, execvp(argv[0], argv), NULL); I have no runtime error, but when the file to find is in another directory, the thread is not created and so execvp(argv[0], argv) is not called... Thank you for you help, Simon

    Read the article

  • i386-mingw32-g++: error trying to exec 'cc1plus': execvp: No such file or directory

    - by Cathy
    If I compile this QT c++ program in SuSE Linux include using namespace std; int main () { cout << "Hello World!"; return 0; When I type i386-mingw32-g++ helloworld.cpp I get the following error i386-mingw32-g++: error trying to exec 'cc1plus': execvp: No such file or directory Is this because MinGW package which i installed contains only gcc in it.. hence i downloaded gcc-g++-3.4.5.rpm package and just copy pasted i386-mingw32-g++ and cc1plus executable along with C++ include files. Pls reply. Thanking You

    Read the article

  • How to get forkpty to handle redirection and other bash-isms?

    - by Jeremy Friesner
    Hi all, I've got a GUI C++ program that takes a shell command from the user, calls forkpty() and execvp() to execute that command in a child process, while the parent (GUI) process reads the child process's stdout/stderr output and displays it in the GUI. This all works nicely (under Linux and MacOS/X). For example, if the user enters "ls -l /foo", the GUI will display the contents of the /foo folder. However, bash niceties like output redirection aren't handled. For example, if the user enters "echo bar /foo/bar.txt", the child process will output the text "bar /foo/bar.txt", instead of writing the text "bar" to the file "/foo/bar.txt". Presumably this is because execvp() is running the executable command "echo" directly, instead of running /bin/bash and handing it the user's command to massage/preprocess. My question is, what is the correct child process invocation to use, in order to make the system behave exactly as if the user had typed in his string at the bash prompt? I tried wrapping the user's command with a /bin/bash invocation, like this: /bin/bash -c the_string_the_user_entered, but that didn't seem to work. Any hints?

    Read the article

  • python os.execvp() trying to display mysql tables gives 1049 error - Unknown database error.

    - by Hemanth Murthy
    I have a question related to mysql and python. This command works on the shell, but not when I use os.execvp() $./mysql -D test -e "show tables" +----------------+ | Tables_in_test | +----------------+ | sample | +----------------+ The corresponding piece of code in python would be def execute(): args = [] args.extend(sys.argv[1:]) args.extend([MYSQL, '-D test -e "show tables"']) print args os.execvp(args[0], args) child_pid = os.fork() if child_pid == 0: os.execvp(args[0], args) else: os.wait() The output of this is: [./mysql', '-D test -e "show tables"'] ERROR 1049 (42000): Unknown database ' test -e "show tables"' I am not sure if this is a problem with the python syntax or not. Also, the same command works with os.system() call. os.system(MYSQL + ' -D test -e "show tables"') Please let me know how to get this working. Thanks, Hemanth

    Read the article

  • C signal parent process from child

    - by Gary
    I'm trying to solve a problem I've got where a child process runs execvp() and needs to let the parent know if it returns. So, after the execvp() returns (because there's been an error), how can I tell the parent that this particular event has happened so it can handle it. There's one method of writing a string of text through the pipe I'm using and then reading that from the parent.. but it seems a bit sloppy. Is there a better way? Thanks!

    Read the article

  • `make install` fails apparently due to typo, but not in makefile: How to find and fix?

    - by Archelon
    I'm trying to install the fujitsu-usb-touchscreen drivers from here, on Kubuntu 12.04 on my new Fujitsu LifeBook P1630. (See fujitsu-usb-touchscreen on kubuntu 13.04 (64-bit) on P1630: `make` errors.) I downloaded the .zip file, unzipped it, and ran make in the directory thus created; this all worked as expected. However, when I run sudo checkinstall (which invokes make install), things go less well. On the first attempt the installation aborted with the following error: make: execvp: /etc/init.d/fujitsu_touchscreen: Permission denied make: *** [install] Error 127 I eventually resolved this by $ sudo chmod +x /etc/init.d/fujitsu_touchscreen But although a second sudo checkinstall then does not give the execvp error, it still fails at a later stage, and the log (on stdout) shows this dpkg error: dpkg: error processing /home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/cybergene-fujitsu-usb-touchscreen-112fdb75b406_amd64.deb (--install): unable to create `/sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy.dpkg-new' (while processing `/sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy'): No such file or directory And, indeed, there is no /sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy; there is, however, /sys/module/fujitsu_usb_touchscreen/parameters/touch_maxy, and this is presumably what was intended. But this incorrect filename does not appear in the makefile or any other file in the directory, at least not that I can find. Nor does it appear, as I discovered after running sudo checkinstall --install=no as suggested below, in the .deb package created by checkinstall. Where might such a typographical error be originating, and how would I go about fixing it? Edited to add: I'm viewing the contents of the .deb file with ark, Kubuntu's default tool. It contains only three files: control.tar.gz, data.tar.gz, and debian-binary. data.tar.gz contains the directory tree that appears to match up to the usual root filesystem, with /etc, /lib, /sys, and /usr directories. (Looking at other .deb files on my system, this structure appears to be typical.) Here's a screenshot: . (Full size.) Here's another screenshot showing that control.tar.gz contains three files, one of which is empty: . (Full size.) Here's the actual .deb file: https://www.dropbox.com/s/odwxxez0fhyvg7a/cybergene-fujitsu-usb-touchscreen_112fdb75b406-1_amd64.deb Edited 2013-09-28 to add: After reinstalling Kubuntu 12.04 again, this time recreating the /home partition (which, again, had been generated during an install of 13.04), I can no longer reproduce this error. I am still curious to know how the underscores got changed to slashes, but it looks as though nobody has any idea. It is perhaps also of interest to note that while I have still not successfully run checkinstall against this package, I have done make install; it requires the executabilization of /etc/init.d/fujitsu_touchscreen and the installation of hal, and the GUI freezes shortly after installation completes, and there is no particular new functionality afterwards that I have noticed, and the system can no longer resume from being suspended; however, this will be pursued elsewhere.

    Read the article

  • Dealing with a gfortran error?

    - by user293253
    I usually do some pieces of code in Fortran and C for my job, but since some days ago I get the following error: $ gfortran D.f -o D.x gfortran: error trying to exec 'f951': execvp: No such file or directory (I have Ubuntu 14.04 on a I7, 8cores and 64b) I did try searching on the forums and several option but nothing seems to work ... Could somebody help ... ? I guess the problem started when I did something to install adobereader and/or skype.

    Read the article

  • Cross Compiling Boost for use on the Gumstix Overo with GumROS

    - by amelim
    I'm trying to cross-compile boost for use with the ROS framework on a Gumstix Overo. I've been following the posted instructions here (modifying the script when need be), however I've come across an issue where bjam will not compile boost properly. I call bjam as follows: # boost if [ ! -f /opt/gumros/lib/libboost_date_time-gcc41-mt-1_38.so ] ; then if [ ! -f boost_1_38_0.tar.gz ] ; then wget --tries=10 http://heanet.dl.sourceforge.net/sourceforge/boost/boost_1_38_0.tar.gz fi # tar xzf boost_1_38_0.tar.gz cd boost_1_38_0 GPP_PATH=${OVEROTOP}/tmp/cross/armv7a/arm-angstrom-linux-gnueabi/bin/g++ GPP_VER=`${GPP_PATH} -v 2>&1 | tail -1 | awk '{print $3}'` echo "using gcc : ${GPP_VER} : ${GPP_PATH} ; " > tools/build/v2/user-config.jam sudo apt-get install bjam set +o errexit sudo bjam --toolset=gcc-${GPP_VER} --prefix=/opt/gumros --with-date_time install set -o errexit cd .. else echo "boost appears to be already installed; skipping." fi if [ ! -f /opt/gumros/lib/libboost_date_time-gcc41-mt-1_38.so ] ; then echo "Failed to compile libboost_date_time"; exit; fi I've checked the user-config to make sure everything was kosher as well as making sure the GPP_PATH is correct. However, when I run the scrip I come across compilation errors such as: Reading package lists... Done Building dependency tree Reading state information... Done bjam is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded. ...patience... ...found 14370 targets... ...updating 14 targets... gcc.compile.c++ bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_month.o g++: error trying to exec 'cc1plus': execvp: No such file or directory "/home/andrew/overo-oe/tmp/cross/armv7a/arm-angstrom-linux-gnueabi/bin/g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DDATE_TIME_INLINE -DNDEBUG -I"." -c -o "bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_month.o" "libs/date_time/src/gregorian/greg_month.cpp" ...failed gcc.compile.c++ bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_month.o... gcc.compile.c++ bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_weekday.o g++: error trying to exec 'cc1plus': execvp: No such file or directory "/home/andrew/overo-oe/tmp/cross/armv7a/arm-angstrom-linux-gnueabi/bin/g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DDATE_TIME_INLINE -DNDEBUG -I"." -c -o "bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_weekday.o" "libs/date_time/src/gregorian/greg_weekday.cpp" ...failed gcc.compile.c++ bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_weekday.o... gcc.compile.c++ bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/date_generators.o g++: error trying to exec 'cc1plus': execvp: No such file or directory Etc... For reference, I'm using this tutorial to help me out. http://www.ros.org/wiki/gumros

    Read the article

  • forkpty - socket

    - by Alexxx
    Hi, I'm trying to develop a simple "telnet/server" daemon which have to run a program on a new socket connection. This part working fine. But I have to associate my new process to a pty, because this process have some terminal capabilities (like a readline). The code I've developped is (where socketfd is the new socket file descriptor for the new input connection) : int masterfd, pid; const char *prgName = "..."; char *arguments[10] = ....; if ((pid = forkpty(&masterfd, NULL, NULL, NULL)) < 0) perror("FORK"); else if (pid) return pid; else { close(STDOUT_FILENO); dup2(socketfd, STDOUT_FILENO); close(STDIN_FILENO); dup2(socketfd, STDIN_FILENO); close(STDERR_FILENO); dup2(socketfd, STDERR_FILENO); if (execvp(prgName, arguments) < 0) { perror("execvp"); exit(2); } } With that code, the stdin / stdout / stderr file descriptor of my "prgName" are associated to the socket (when looking with ls -la /proc/PID/fd), and so, the terminal capabilities of this process doesn't work. A test with a connection via ssh/sshd on the remote device, and executing "localy" (under the ssh connection) prgName, show that the stdin/stdout/stderr fd of this process "prgName" are associated to a pty (and so the terminal capabilities of this process are working fine). What I am doing wrong? How to associate my socketfd with the pty (created by forkpty) ? Thank Alex

    Read the article

  • how can exec change the behavior of exec'ed program

    - by R Samuel Klatchko
    I am trying to track down a very odd crash. What is so odd about it is a workaround that someone discovered and which I cannot explain. The workaround is this small program which I'll refer to as 'runner': #include <stdio.h> #include <unistd.h> #include <string.h> #include <errno.h> int main(int argc, char *argv[]) { if (argc == 1) { fprintf(stderr, "Usage: %s prog [args ...]\n", argv[0]); return 1; } execvp(argv[1], argv + 1); fprintf(stderr, "execv failed: %s\n", strerror(errno)); // If exec returns because the program is not found or we // don't have the appropriate permission return 255; } As you can see, all this program does is use execvp to replace itself with a different program. The program crashes when it is directly invoked from the command line: /path/to/prog args # this crashes but works fine when it is indirectly invoked via my runner shim: /path/to/runner /path/to/prog args # works successfully For the life of me, I can figure out how having an extra exec can change the behavior of the program being run (as you can see the program does not change the environment). Some background on the crash. The crash itself is happening in the C++ runtime. Specifically, when the program does a throw, the crashing version incorrectly thinks there is no matching catch (although there is) and calls terminate. When I invoke the program via runner, the exception is properly caught. My question is any idea why the extra exec changes the behavior of the exec'ed program?

    Read the article

  • UNIX pipes on C block on read

    - by Toni Cárdenas
    I'm struggling to implement a shell with pipelines for class. typedef struct { char** cmd; int in[2]; int out[2]; } cmdio; cmdio cmds[MAX_PIPE + 1]; Commands in the pipeline are read and stored in cmds. cmdio[i].in is the pair of file descriptors of the input pipe returned by pipe(). For the first command, which reads from terminal input, it is just {fileno(stdin), -1}. cmdin[i].outis similar for the output pipe/terminal output. cmdio[i].in is the same as cmd[i-1].out. For example: $ ls -l | sort | wc CMD: ls -l IN: 0 -1 OUT: 3 4 CMD: sort IN: 3 4 OUT: 5 6 CMD: wc IN: 5 6 OUT: -1 1 We pass each command to process_command, which does a number of things: for (cmdi = 0; cmds[cmdi].cmd != NULL; cmdi++) { process_command(&cmds[cmdi]); } Now, inside process_command: if (!(pid_fork = fork())) { dup2(cmd->in[0], fileno(stdin)); dup2(cmd->out[1], fileno(stdout)); if (cmd->in[1] >= 0) { if (close(cmd->in[1])) { perror(NULL); } } if (cmd->out[0] >= 0) { if (close(cmd->out[0])) { perror(NULL); } } execvp(cmd->cmd[0], cmd->cmd); exit(-1); } The problem is that reading from the pipe blocks forever: COMMAND $ ls | wc Created pipe, in: 5 out: 6 Foreground pid: 9042, command: ls, Exited, info: 0 [blocked running read() within wc] If, instead of exchanging the process with execvp, I just do this: if (!(pid_fork = fork())) { dup2(cmd->in[0], fileno(stdin)); dup2(cmd->out[1], fileno(stdout)); if (cmd->in[1] >= 0) { if (close(cmd->in[1])) { perror(NULL); } } if (cmd->out[0] >= 0) { if (close(cmd->out[0])) { perror(NULL); } } char buf[6]; read(fileno(stdin), buf, 5); buf[5] = '\0'; printf("%s\n", buf); exit(0); } It happens to work: COMMAND $ cmd1 | cmd2 | cmd3 | cmd4 | cmd5 Pipe creada, in: 11 out: 12 Pipe creada, in: 13 out: 14 Pipe creada, in: 15 out: 16 Pipe creada, in: 17 out: 18 hola! Foreground pid: 9251, command: cmd1, Exited, info: 0 Foreground pid: 9252, command: cmd2, Exited, info: 0 Foreground pid: 9253, command: cmd3, Exited, info: 0 Foreground pid: 9254, command: cmd4, Exited, info: 0 hola! Foreground pid: 9255, command: cmd5, Exited, info: 0 What could be the problem?

    Read the article

  • How to execute a program from file descriptor?

    - by stribika
    I need to execute a file when I only know the descriptor. It is also possible that there are no links to the file so finding out the name somehow is not an option. All the execve(), execvp(), etc functions take a file name. dlopen() also takes a name. Ugly solutions (like reading the file and calling some function pointer) are OK.

    Read the article

  • xecvp: ./chk: Permission denied

    - by Hiranth
    I'm trying to install Xen 4.0.1 on Ubuntu 10.10. When i run the "make world" it gives the following error at the end.... make -C check clean make[4]: Entering directory `/home/hirantha/xen-4.0.1/tools/check' ./chk clean make[4]: execvp: ./chk: Permission denied make[4]: * [clean] Error 127 make[4]: Leaving directory `/home/hirantha/xen-4.0.1/tools/check' make[3]: * [subdir-clean-check] Error 2 make[3]: Leaving directory `/home/hirantha/xen-4.0.1/tools' make[2]: * [subdirs-clean] Error 2 make[2]: Leaving directory `/home/hirantha/xen-4.0.1/tools' make[1]: * [clean] Error 2 make[1]: Leaving directory `/home/hirantha/xen-4.0.1' make: * [world] Error 2 Why is that? Please help me to solve this....

    Read the article

  • How do I implement the bg, &, and fg commands functionaliity in my custom unix shell program written in C

    - by user1631009
    I am extending the functionality of a custom unix shell which I wrote as part of my lab assignment. It currently supports all commands through execvp calls, in-built commands like pwd, cd, history, echo and export, and also redirection and pipes. Now I wanted to add support for running a command in background e.g. $ls -la& I also want to implement bg and fg job control commands. I know this can be achieved if I execute the command by forking a new child process and not waiting for it in the parent process. But how do I again bring this command to foreground using fg? I have the idea of entering each background command in a list assigning each of them a serial number. But I don't know how do I make the processes execute in the background, then bring them back to foreground. I guess wait() and waitpid() system calls would come handy but I am not that comfortable with them. I tried reading the man pages but still am in the dark. Can someone please explain in a layman's language how to achieve this in UNIX system programming? And does it have something to do with SIGCONT and SIGSTP signals?

    Read the article

  • PCI-e SEALEVEL dual serial card not recognized on Ubuntu 14.04

    - by kwhunter
    New to Ubuntu, running 14.04. I have trouble with the serial port setup, I have a plug-in PCI-e SEALEVEL dual serial card that is not recognized. user1@WSIWORKSTATION2:~$ dmesg | grep tty [ 0.000000] console [tty0] enabled [ 1.577197] 00:06: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 1.943326] tty ttyprintk: hash matches [ 17.240880] ttyS4: LSR safety check engaged! [ 17.241589] ttyS4: LSR safety check engaged! [ 17.242354] ttyS5: LSR safety check engaged! [ 17.243058] ttyS5: LSR safety check engaged! [ 17.243918] ttyS6: LSR safety check engaged! [ 17.244485] ttyS6: LSR safety check engaged! [ 17.245195] ttyS7: LSR safety check engaged! [ 17.245830] ttyS7: LSR safety check engaged! [ 17.246554] ttyS8: LSR safety check engaged! [ 17.247191] ttyS8: LSR safety check engaged! user1@WSIWORKSTATION2:~/Desktop/seacom$ lspci -d 135e: -vvv 02:04.0 Bridge: Sealevel Systems Inc Device e205 (rev aa) Subsystem: Sealevel Systems Inc Device e205 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- SERR- Capabilities: However, the manufacturer's drivers won't install: 1. user1@WSIWORKSTATION2:~/Desktop/seacom$ make install ---------------------------------------------------------------- Installing seacom suite. ---------------------------------------------------------------- --Installing utilities-- /usr/bin/ld: skipping incompatible ../../lib/libftd2xx.a when searching for -lftd2xx /usr/bin/ld: cannot find -lftd2xx collect2: error: ld returned 1 exit status make[2]: *** [setusb] Error 1 make[1]: *** [install] Error 1 make: *** [install] Error 1 2. user1@WSIWORKSTATION2:~/Desktop/seaio$ make install ---------------------------------------------------------------- Installing SD suite. ---------------------------------------------------------------- *Compiling SeaIO Library source file: digitalIoDevice.cpp gcc: error trying to exec 'cc1plus': execvp: No such file or directory make[1]: *** [digitalIoDevice.o] Error 1 make: *** [install] Error 1 I was not able to find a solution, so if anyone can help it will be much appreciated. PS Have some troubles with formatting my post, apologies...

    Read the article

  • How do I implement the bg, &, and bg commands functionaliity in my custom unix shell program written in C

    - by user1631009
    I am trying to extend the functionality of my custom unix shell which I earlier wrote as part of my lab assignment. It currently supports all commands through execvp calls, in-built commands like pwd, cd, history, echo and export, and also redirection and pipes. Now I wanted to add the support for running a command in background e.g. $ls -la& Now I also want to implement bg and fg job control commands. I know this can be achieved if I execute the command by forking a new child process and not waiting for it in the parent process. But how do I again bring this command to foreground using fg? I have the idea of entering each background command in a list assigning each of them a serial number. But I don't know how do I make the processes execute in the background, then bring them back to foreground. I guess wait() and waitpid() system calls would come handy but I am not that comfortable with them. I tried reading the man pages but still am in the dark. Can someone please explain in a layman's language how to achieve this in UNIX system programming? And does it have something to do with SIGCONT and SIGSTP signals?

    Read the article

  • .wine-pipelight folder not present

    - by DaimyoKirby
    Following the instructions on the pipelight installation page, I installed pipelight on Ubuntu 14.04. However, upon opening firefox the .wine-pipelight folder isn't present in my home folder, and I get the following errors: [PIPELIGHT:LIN:unknown] attached to process. [PIPELIGHT:LIN:unknown] checking environment variable PIPELIGHT_SILVERLIGHT5_1_CONFIG. [PIPELIGHT:LIN:unknown] searching for config file pipelight-silverlight5.1. [PIPELIGHT:LIN:unknown] trying to load config file from '/home/alden/.config/pipelight-silverlight5.1'. [PIPELIGHT:LIN:silverlight5.1] basicplugin.c:427:checkSilverlightGraphicDriver(): error in execlp command - probably silverlightGraphicDriverCheck not found or missing execute permission. [PIPELIGHT:LIN:silverlight5.1] basicplugin.c:441:checkSilverlightGraphicDriver(): GPU driver check - Your driver is not in the whitelist, hardware acceleration disabled. [PIPELIGHT:LIN:silverlight5.1] using wine prefix directory /home/alden/.wine-pipelight. [PIPELIGHT:LIN:silverlight5.1] checking plugin installation - this might take some time. [PIPELIGHT:LIN:silverlight5.1] basicplugin.c:374:checkPluginInstallation(): error in execvp command - probably dependencyInstaller/sandbox not found or missing execute permission. [PIPELIGHT:LIN:silverlight5.1] basicplugin.c:384:checkPluginInstallation(): Plugin installer did not run correctly (exitcode = 1). [PIPELIGHT:LIN:silverlight5.1] basicplugin.c:108:attach(): plugin not correctly installed - aborting. I've reinstalled quite a few times and ran through many of the common fixes offered on the pipelight Launchpad pages and here on AskUbunta and still it fails to run. Is there a reason why this folder isn't present, or why I'm getting these errors? Edit: Oddly enough, the .wine-pipelight folder is created wtih I open Nitro, although this still doesn't fix the issue.

    Read the article

  • run .net consolapp out of a cgi script

    - by Nico
    Hello there, i have written a simple cgi python script which looks like this #!c:/Python25/python.exe -u import cgi import os def main(): print "Content-type: text/html\n" form = cgi.FieldStorage() print form["firstname"].value os.execvp("D:\\path\\to\\my\\consolapp.exe", [""]) main() As you can se i'd like to start a consoleapp which i have written in .net. But my consoleapp crashs when i call the cgi script. So i did a little debuging and write a text file after some actions i do in my .net program. The result was that my programm crash everytime i'd like to open a access mdb file. It told me that i need the Microsoft Data Access Components (MDAC). But i cant belive this message because my .net consoleapp runs without errors if i start it from my own. So can anybody give me some advise how i can call my .net consol ab through a webscript. I'm happy for every advise So it don't have to be a solution using a cgi script. Regards, Nico

    Read the article

  • what does this code do?

    - by bstullkid
    It looks like this just sends a ping, but whats the point of that when you can just use ping? int main (int argc, char *argv[]) { unsigned int pid = 0; char buffer[2]; char *args[] = { "/bin/ping", "-c", "5", NULL, NULL }; if (argc != 2) return 0; args[3] = strdup(argv[1]); for (;;) { gets(buffer); /* FTW */ if (buffer[0] == 0x6e) break; switch (pid = fork()) { case -1: printf("Error Forking\n"); exit(255); case 0: execvp(args[0], args); exit(1); default: break; } } return 255; }

    Read the article

  • How to handle inputs in a C shell program during exec

    - by hits_lucky
    I am currently writing my own shell program. This simple shell can just execute commands. When executing commands like vi or calc which require input from the terminal , the command is getting executed and is waiting for the input from the user. But I am unable to give any input on the screen. How should the input be handled during the fork and exec. Here is the piece of code which is executing commands: if((pid = fork()) < 0) { perror("Fork failed"); exit(errno); } if(pid == 0) { // Child process if(execvp(arguments[0], arguments) == -1) { child_status = errno; switch(child_status) { case ENOENT: printf(" command not found \n"); break; } exit(errno); } } else { // parent process int wait_stat; if(waitpid(pid , &wait_stat, WNOHANG) == -1) { printf(" waitpid failed \n"); return; } } } ~ Thanks,

    Read the article

  • How could my code compliled correctly without necessary headers?

    - by ZhengZhiren
    I use the functions fork(),exec()... But how can this program compiled without including some extra headers(like sys/types.h, sys/wait.h). I use ubuntu 10.04 with gcc version 4.4.3 #include <stdio.h> #include <stdlib.h> int main() { pid_t pid; printf("before fork\n"); pid = fork(); if(pid == 0) { /*child*/ if(execvp("./cpuid", NULL)) { printf("error\n"); exit(0); } } else { if(wait(NULL) != -1) { printf("ok\n"); } } return 0; }

    Read the article

1 2  | Next Page >