If the input is a vertex set (rather than a PSLG), Triangle produces its convex hull as a by-product in the output .poly file if you use the -c switch. There are faster algorithms for finding a two-dimensional convex hull than triangulation, of course, but this one comes for free. In the example below, the file dots.node is read, and its convex hull produced in dots.1.poly.
triangle -c dots
If the input is an unconstrained mesh (you are using the -r switch but not the -p switch), Triangle produces a list of its boundary edges (including hole boundaries) as a by-product when you use the -c switch. If you also use the -p switch, the output .poly file will contain all the segments from the input .poly file as well.
For example, consider the mesh described by face.1.node, face.1.ele, and face.1.poly (which you saw created on the Delaunay triangulation page).
triangle -rc face.1 triangle -rpc face.1In each case, the boundary segments can be found in face.2.poly.