LU-LSP-b11:L01

From DiLab
Revision as of 10:37, 14 September 2011 by Atis (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Praktiskais darbs

Uzrakstīt sekojošas programmas:

  1. (C valodā) Ielasa lietotāja tekstu un padod zemāk.
  2. (shell script) Saņem padoto tekstu, izdrukā datumu un padod tekstu nakamajai programmai
  3. (C valodā) izdrukā saņemto tekstu

1. un 3. drīkst apvienot!

Noformēt uzdevumu kā:

  • myprint{1,3}.c - C izejas koda faili
  • myprint{1,3} - izpildāmais fails (sakompilēts no C koda)
  • script - bash skripta fails
  • Makefile - testēšanas makefile, ar mērķiem:
    • all - kompilēt C kodu
    • clean - nodzēst izpildāmo(s) failu(s)
    • test - notestēt visu

PD klasē, piemēra iespējamais risinājums. 1. un 3. programmu apvienojums

#include <stdio.h>

int main (int argc, char *argv[])
{
	char str[255];

	if( argc>1 )
	{
		puts(argv[1]);
	}
	else
	{
		scanf("%s", str);
		puts(str);
	}
	return 0;
}

Shell skripts:

#!/bin/sh
while read LINE; do
date
./myprint ${LINE}
done

Programmu izsaukums: ./myprint | ./script

Viela pārdomām:

  • Kā ir ar drošību? vai lietotājs nevar ievadīt potenciāli bīstamas simbolu virknes?
  • Vai risinājums izdrukās visu tekstu vai tikai vienu vārdu? Kā to labot?