Avatar billede dank Nybegynder
26. oktober 2003 - 13:48 Der er 8 kommentarer og
1 løsning

kald af f.eks. shell script

Hvordan/hvad er den mest/bedste metode til at udføre opgaver hvor der i forvejen findes et program/script til dette, f.eks.

touch ~/abc.abc

Findes der en slags systemkald, eller hvordan gør man i C?

evt eksempel? :)
Avatar billede arne_v Ekspert
26. oktober 2003 - 13:56 #1
Muligvis er det:

system("touch ~/abc.abc");

du leder efter.

(du skal include stdlib.h for at bruge system)
Avatar billede dank Nybegynder
26. oktober 2003 - 14:02 #2
yeps... ligner Perl :)

svar?
Avatar billede dank Nybegynder
26. oktober 2003 - 14:03 #3
Hvordan kan jeg vide, eller hvordan kan man vide hvilke .h man skal include for at få de enkelte funktioner?

Er det bare noget man lærer med tiden :) Eller er der et godt opslagsværk?
Avatar billede arne_v Ekspert
26. oktober 2003 - 14:04 #4
svar
Avatar billede arne_v Ekspert
26. oktober 2003 - 14:04 #5
grep og/eller cat i .h filerne !
Avatar billede arne_v Ekspert
26. oktober 2003 - 14:07 #6
man funktionsnavn
Avatar billede arne_v Ekspert
26. oktober 2003 - 14:08 #7
man system giver:

SYSTEM(3)          Linux Programmer's Manual          SYSTEM(3)

NAME
      system - execute a shell command

SYNOPSIS
      #include <stdlib.h>

      int system (const char * string);

DESCRIPTION
      system() executes a command specified in string by calling
      /bin/sh -c string, and returns after the command has  been
      completed.  During execution of the command, SIGCHLD will
      be blocked, and SIGINT and SIGQUIT will be ignored.

RETURN VALUE
      The value returned is -1 on error (e.g. fork failed),  and
      the  return  status of the command otherwise.  This latter
      return status is  in  the  format  specified  in  wait(2).
      Thus,  the  exit  code  of  the  command will be WEXITSTA
      TUS(status).  In case /bin/sh could not be  executed,  the
      exit status will be that of a command that does exit(127).
...
Avatar billede arne_v Ekspert
26. oktober 2003 - 14:10 #8
grep er bedre hvis man ikke kender funktionsnavnet.

[arne@arne2 arne]$ grep command /usr/include/std*.h
/usr/include/stdio.h:/* Create a new stream connected to a pipe running the giv/
/usr/include/stdio.h:extern FILE *popen (__const char *__command, __const char ;
/usr/include/stdlib.h:/* Execute the given line as a shell command.  */
/usr/include/stdlib.h:extern int system (__const char *__command) __THROW;
Avatar billede dank Nybegynder
26. oktober 2003 - 14:11 #9
ja det kan jeg se.. ovenstående virker også fint hos mig, både på en BSD boks, Suse og en Debian :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester