Changes between Version 20 and Version 21 of WikiStart


Ignore:
Timestamp:
Mar 21, 2009, 12:52:55 AM (10 years ago)
Author:
lorenzo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v20 v21  
    288288 * [UnixShell UNIX Shell: kit di sopravvivenza (in aggiornamento)]
    289289
     290===== stdout.c =====
     291
     292{{{
     293#!c
     294/*
     295   scrive st stdout(1) gli argomenti ricevuti sulla riga di comando
     296
     297   utile per capire come funzionano quoting, escaping e command substitution nella shell:
     298   e.s. ./stdout "ciao ciao"
     299        ./stdout ciao ciao
     300        a="giallo"; b="rosso" ; ./stdout "$a $b"
     301        ./stdout $(ls /etc)
     302
     303   compilare con: cc -o stdout stdout.c
     304
     305*/
     306
     307#include <stdio.h>
     308
     309int main(int argc, char **argv) {
     310  int i;
     311
     312  for (i = 0; i < argc; i++) {
     313    printf("%d: %s\n", i, argv[i]);
     314  }
     315
     316  return 0;
     317}
     318}}}
     319
     320==== stdouterr.c ====
     321
     322{{{
     323#!c
     324
     325/*
     326   scrive su stdout(1)  e stderr (2) gli argomenti ricevuti sulla riga di
     327   comando; l'i-esimo argomento viene scritto su stdout se i e' pari e su
     328   stderr se i e' dispari
     329   
     330   utile per capire come funzionano redirezione e pipe nella shell
     331   e.s. ./stdouterr "primo argomento" "secondo argomento" | cat
     332        ./stdouterr "primo argomento" "secondo argomento" 2> /tmp/2
     333        ./stdouterr "primo" "secondo" 2> /dev/null
     334
     335   per compilare: cc -o stdouterr stdouterr.c
     336*/
     337
     338#include <stdio.h>
     339#include <string.h>
     340
     341int main(int argc, char **argv) {
     342  int i;
     343  char buf[2048];
     344
     345  for (i = 0; i < argc; i++) {
     346    snprintf(buf, 2047, "%d: %s\n", i, argv[i]);
     347    write(i % 2 + 1, buf, strlen(buf));
     348  }
     349
     350  return 0;
     351}
     352
     353}}}
     354
     355
    290356=== Esercizi online (per turno 2) ===
    291357 * [http://idea.sec.dico.unimi.it/~lorenzo/SisOp0809/ Esercizi online]