if (condition) statement1else statement2
statement1 is executed if thecondition expression isnon-zero. The statement2 isexecuted if the conditionexpression is zero. The else clause(else statement2) is optional. Bothstatement1 andstatement2 can be statementblocks.Example 3.11. ifelse.stp
global countread, countnonreadprobe kernel.function("vfs_read"),kernel.function("vfs_write"){ if (probefunc()=="vfs_read") countread ++ else countnonread ++}probe timer.s(5) { exit() }probe end{ printf("VFS reads total %d\n VFS writes total %d\n", countread, countnonread)}vfs_read) and writes (vfs_write) the system performs within a 5-second span. When run, the script increments the value of the variable countread by 1 if the name of the function it probed matches vfs_read (as noted by the condition if (probefunc()=="vfs_read")); otherwise, it increments countnonread (else {countnonread ++}).while (condition) statement
condition is non-zerothe block of statements instatement are executed. Thestatement is often a statementblock and it must change a value socondition will eventually be zero.for (initialization; conditional; increment) statement
for loop is shorthand for a while loop. Thefollowing is the equivalent while loop:initializationwhile (conditional) { statement increment}== ("is equal to"), following operators can also be used in conditional statements: