Refererring to my post above:
If e is the endpoint of your line (b was the start), you can simply do v = e-b.
Now compute the lambdas (if the mess under the sqrt is negative, there is no solution). If lambda is between 0 and 1, the point is on your line segment. If both lambdas are between 0 and 1, the smaller one indicates the one closer to the starting point.
Now simply insert the computed lambdas back into the line equation p = lambda*v+b to get the points.
Alternatively or additional to bounding boxes, you could use the distance from the circle center to the line as a preliminary step to see whether an intersection is at all possible (compare squared distances). However, I don't think it is way faster than the computation of the term under the sqrt.