LU-LSP-b11:L01: Difference between revisions

From DiLab
Jump to navigation Jump to search
Content deleted Content added
Atis (talk | contribs)
No edit summary
Atis (talk | contribs)
No edit summary
 
Line 1: Line 1:
== Praktiskais darbs ==
Ievads sistēmprogrammēšanā un UNIX operētājsistēmā.
C programmu un shell skriptu savstarpēja sadarbība.
<!-- [[http://jupiter.cs.fmf.lu.lv/~kursi/lu-lsp-b11-01.pdf Lekcijas slaidi]] -->
== LKP PD1 ==


Uzrakstīt sekojošas programmas:
Uzrakstīt sekojošas programmas:

Latest revision as of 08:37, 14 September 2011

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?