LU-LSP-b11:L01

From DiLab
Revision as of 19:40, 7 September 2011 by Atis (talk | contribs) (New page: Ievads sistēmprogrammēšanā un UNIX operētājsistēmā. C programmu un shell-script savstarpēja sadarbība. Lekcijas slaidi [PDF] == LKP PD1 == Uzrakst...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Ievads sistēmprogrammēšanā un UNIX operētājsistēmā. C programmu un shell-script savstarpēja sadarbība.

Lekcijas slaidi [PDF]

LKP PD1

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 izdrukas visu tekstu vai tikai vienu vārdu? Kā to labot?